﻿using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TSU.FAMC.ComputerEngineering.Classes.BooleanMaths.Functions;
using TSU.FAMC.ComputerEngineering.Classes.BooleanMaths.Functions.Readers;
using TSU.FAMC.ComputerEngineering.Classes.Circuits.Readers;
using TSU.FAMC.ComputerEngineering.Classes.Diagnostics.PathDelayFaults;
using System.Linq;
using TSU.FAMC.ComputerEngineering.Classes.Enums;
using TSU.FAMC.ComputerEngineering.Classes.OrandTrees.Readers;

namespace Tests.FAMC.ComputerEngineering.Classes.Diagnostics.PathDelayFaults
{
    /// <summary>
    /// Summary description for PathDelayFaultAnalyzerTest
    /// </summary>
    [TestClass]
    public class PathDelayFaultAnalyzerTest
    {
        [TestMethod]
        public void CheckPathDelayFaultTestsTest()
        {
            // s27
            ValidateTests(
                "# s27\r\n# 4 inputs\r\n# 1 outputs\r\n# 3 D-type flipflops\r\n# 2 inverters\r\n# 8 gates (1 ANDs + 1 NANDs + 2 ORs + 4 NORs)\r\nINPUT(G0)\r\nINPUT(G1)\r\nINPUT(G2)\r\nINPUT(G3)\r\nOUTPUT(G17)\r\nG5 = DFF(G10)\r\nG6 = DFF(G11)\r\nG7 = DFF(G13)\r\nG14 = NOT(G0)\r\nG17 = NOT(G11)\r\nG8 = AND(G14, G6)\r\nG15 = OR(G12, G8)\r\nG16 = OR(G3, G8)\r\nG9 = NAND(G16, G15)\r\nG10 = NOR(G14, G11)\r\nG11 = NOR(G5, G9)\r\nG12 = NOR(G1, G7)\r\nG13 = NOR(G2, G12)\r\n",
                21);

            // circuit from article with multi-input (3-input) gates
            ValidateTests(
                "INPUT(g0)\r\nINPUT(g1)\r\nINPUT(g2)\r\nINPUT(g3)\r\nINPUT(g4)\r\nOUTPUT(g13)\r\ng5 = NOT(g2)\r\ng6 = NOT(g3)\r\ng7 = NAND(g4, g1)\r\ng8 = AND(g6, g4)\r\ng9 = OR(g5, g8)\r\ng10 = AND(g0, g1, g9)\r\ng11 = NOT(g9)\r\ng12 = AND(g11, g7)\r\ng13 = OR(g10, g12)",
                9, 1, 0);

            // circuit from article with 2-input gates
            ValidateTests(
                "INPUT(g0)\r\nINPUT(g1)\r\nINPUT(g2)\r\nINPUT(g3)\r\nINPUT(g4)\r\nOUTPUT(g13)\r\ng5 = NOT(g2)\r\ng6 = NOT(g3)\r\ng7 = NAND(g4, g1)\r\ng8 = AND(g6, g4)\r\ng9 = OR(g5, g8)\r\ng14 = AND(g1, g9)\r\ng10 = AND(g0, g14)\r\ng11 = NOT(g9)\r\ng12 = AND(g11, g7)\r\ng13 = OR(g10, g12)",
                9, 1, 0);

            // s344 74000 conjunctions
            /*
            ValidateTests(
                "# s344\r\n# 9 inputs\r\n# 11 outputs\r\n# 15 D-type flipflops\r\n# 59 inverters\r\n# 101 gates (44 ANDs + 18 NANDs + 9 ORs + 30 NORs)\r\nINPUT(START)\r\nINPUT(B0)\r\nINPUT(B1)\r\nINPUT(B2)\r\nINPUT(B3)\r\nINPUT(A0)\r\nINPUT(A1)\r\nINPUT(A2)\r\nINPUT(A3)\r\nOUTPUT(P4)\r\nOUTPUT(P5)\r\nOUTPUT(P6)\r\nOUTPUT(P7)\r\nOUTPUT(P0)\r\nOUTPUT(P1)\r\nOUTPUT(P2)\r\nOUTPUT(P3)\r\nOUTPUT(CNTVCON2)\r\nOUTPUT(CNTVCO2)\r\nOUTPUT(READY)\r\nCT2 = DFF(CNTVG3VD)\r\nCT1 = DFF(CNTVG2VD)\r\nCT0 = DFF(CNTVG1VD)\r\nACVQN3 = DFF(ACVG4VD1)\r\nACVQN2 = DFF(ACVG3VD1)\r\nACVQN1 = DFF(ACVG2VD1)\r\nACVQN0 = DFF(ACVG1VD1)\r\nMRVQN3 = DFF(MRVG4VD)\r\nMRVQN2 = DFF(MRVG3VD)\r\nMRVQN1 = DFF(MRVG2VD)\r\nMRVQN0 = DFF(MRVG1VD)\r\nAX3 = DFF(AM3)\r\nAX2 = DFF(AM2)\r\nAX1 = DFF(AM1)\r\nAX0 = DFF(AM0)\r\nCNTVG3VQN = NOT(CT2)\r\nCNTVG2VQN = NOT(CT1)\r\nCNTVG1VQN = NOT(CT0)\r\nP7 = NOT(ACVQN3)\r\nP6 = NOT(ACVQN2)\r\nP5 = NOT(ACVQN1)\r\nP4 = NOT(ACVQN0)\r\nP3 = NOT(MRVQN3)\r\nP2 = NOT(MRVQN2)\r\nP1 = NOT(MRVQN1)\r\nP0 = NOT(MRVQN0)\r\nCNTVCON0 = NOT(CT0)\r\nCT1N = NOT(CT1)\r\nACVPCN = NOT(START)\r\nCNTVCO0 = NOT(CNTVG1VQN)\r\nAMVS0N = NOT(INIT)\r\nREADY = NOT(READYN)\r\nBMVS0N = NOT(READYN)\r\nAMVG5VS0P = NOT(AMVS0N)\r\nAMVG4VS0P = NOT(AMVS0N)\r\nAMVG3VS0P = NOT(AMVS0N)\r\nAMVG2VS0P = NOT(AMVS0N)\r\nAD0 = NOT(AD0N)\r\nAD1 = NOT(AD1N)\r\nAD2 = NOT(AD2N)\r\nAD3 = NOT(AD3N)\r\nCNTVG3VD1 = NOT(CNTVCON1)\r\nCNTVG1VD1 = NOT(READY)\r\nBMVG5VS0P = NOT(BMVS0N)\r\nBMVG4VS0P = NOT(BMVS0N)\r\nBMVG3VS0P = NOT(BMVS0N)\r\nBMVG2VS0P = NOT(BMVS0N)\r\nSMVS0N = NOT(ADSH)\r\nMRVSHLDN = NOT(ADSH)\r\nADDVC1 = NOT(ADDVG1VCN)\r\nSMVG5VS0P = NOT(SMVS0N)\r\nSMVG4VS0P = NOT(SMVS0N)\r\nSMVG3VS0P = NOT(SMVS0N)\r\nSMVG2VS0P = NOT(SMVS0N)\r\nCNTVG1VZ = NOT(CNTVG1VZ1)\r\nAM3 = NOT(AMVG5VX)\r\nAM2 = NOT(AMVG4VX)\r\nAM1 = NOT(AMVG3VX)\r\nAM0 = NOT(AMVG2VX)\r\nS0 = NOT(ADDVG1VP)\r\nBM3 = NOT(BMVG5VX)\r\nBM2 = NOT(BMVG4VX)\r\nBM1 = NOT(BMVG3VX)\r\nBM0 = NOT(BMVG2VX)\r\nADDVC2 = NOT(ADDVG2VCN)\r\nS1 = NOT(ADDVG2VSN)\r\nADDVC3 = NOT(ADDVG3VCN)\r\nS2 = NOT(ADDVG3VSN)\r\nSM0 = NOT(SMVG2VX)\r\nCO = NOT(ADDVG4VCN)\r\nS3 = NOT(ADDVG4VSN)\r\nSM1 = NOT(SMVG3VX)\r\nSM3 = NOT(SMVG5VX)\r\nSM2 = NOT(SMVG4VX)\r\nAMVG5VG1VAD1NF = AND(AMVS0N, AX3)\r\nAMVG4VG1VAD1NF = AND(AMVS0N, AX2)\r\nAMVG3VG1VAD1NF = AND(AMVS0N, AX1)\r\nAMVG2VG1VAD1NF = AND(AMVS0N, AX0)\r\nBMVG5VG1VAD1NF = AND(BMVS0N, P3)\r\nBMVG4VG1VAD1NF = AND(BMVS0N, P2)\r\nBMVG3VG1VAD1NF = AND(BMVS0N, P1)\r\nBMVG2VG1VAD1NF = AND(BMVS0N, P0)\r\nAMVG5VG1VAD2NF = AND(AMVG5VS0P, A3)\r\nAMVG4VG1VAD2NF = AND(AMVG4VS0P, A2)\r\nAMVG3VG1VAD2NF = AND(AMVG3VS0P, A1)\r\nAMVG2VG1VAD2NF = AND(AMVG2VS0P, A0)\r\nADDVG2VCNVAD1NF = AND(AD1, P5)\r\nADDVG3VCNVAD1NF = AND(AD2, P6)\r\nADDVG4VCNVAD1NF = AND(AD3, P7)\r\nMRVG3VDVAD1NF = AND(ADSH, P3)\r\nMRVG2VDVAD1NF = AND(ADSH, P2)\r\nMRVG1VDVAD1NF = AND(ADSH, P1)\r\nBMVG5VG1VAD2NF = AND(BMVG5VS0P, B3)\r\nBMVG4VG1VAD2NF = AND(BMVG4VS0P, B2)\r\nBMVG3VG1VAD2NF = AND(BMVG3VS0P, B1)\r\nBMVG2VG1VAD2NF = AND(BMVG2VS0P, B0)\r\nSMVG5VG1VAD1NF = AND(SMVS0N, P7)\r\nSMVG4VG1VAD1NF = AND(SMVS0N, P6)\r\nSMVG3VG1VAD1NF = AND(SMVS0N, P5)\r\nSMVG2VG1VAD1NF = AND(SMVS0N, P4)\r\nADDVG2VCNVAD4NF = AND(ADDVC1, AD1, P5)\r\nADDVG2VCNVAD2NF = AND(ADDVC1, ADDVG2VCNVOR1NF)\r\nMRVG4VDVAD1NF = AND(ADSH, S0)\r\nMRVG4VDVAD2NF = AND(MRVSHLDN, BM3)\r\nMRVG3VDVAD2NF = AND(MRVSHLDN, BM2)\r\nMRVG2VDVAD2NF = AND(MRVSHLDN, BM1)\r\nMRVG1VDVAD2NF = AND(MRVSHLDN, BM0)\r\nADDVG2VCNVAD3NF = AND(ADDVG2VCNVOR2NF, ADDVG2VCN)\r\nADDVG3VCNVAD4NF = AND(ADDVC2, AD2, P6)\r\nADDVG3VCNVAD2NF = AND(ADDVC2, ADDVG3VCNVOR1NF)\r\nADDVG3VCNVAD3NF = AND(ADDVG3VCNVOR2NF, ADDVG3VCN)\r\nSMVG2VG1VAD2NF = AND(SMVG2VS0P, S1)\r\nADDVG4VCNVAD4NF = AND(ADDVC3, AD3, P7)\r\nADDVG4VCNVAD2NF = AND(ADDVC3, ADDVG4VCNVOR1NF)\r\nADDVG4VCNVAD3NF = AND(ADDVG4VCNVOR2NF, ADDVG4VCN)\r\nSMVG3VG1VAD2NF = AND(SMVG3VS0P, S2)\r\nSMVG5VG1VAD2NF = AND(SMVG5VS0P, CO)\r\nSMVG4VG1VAD2NF = AND(SMVG4VS0P, S3)\r\nADDVG1VPVOR1NF = OR(AD0, P4)\r\nADDVG2VCNVOR1NF = OR(AD1, P5)\r\nADDVG3VCNVOR1NF = OR(AD2, P6)\r\nADDVG4VCNVOR1NF = OR(AD3, P7)\r\nCNTVG3VG2VOR1NF = OR(CT2, CNTVG3VD1)\r\nCNTVG2VG2VOR1NF = OR(CT1, CNTVG2VD1)\r\nADDVG2VCNVOR2NF = OR(ADDVC1, AD1, P5)\r\nADDVG3VCNVOR2NF = OR(ADDVC2, AD2, P6)\r\nADDVG4VCNVOR2NF = OR(ADDVC3, AD3, P7)\r\nREADYN = NAND(CT0, CT1N, CT2)\r\nAD0N = NAND(P0, AX0)\r\nAD1N = NAND(P0, AX1)\r\nAD2N = NAND(P0, AX2)\r\nAD3N = NAND(P0, AX3)\r\nCNTVCON1 = NAND(CT1, CNTVCO0)\r\nCNTVCON2 = NAND(CT2, CNTVCO1)\r\nADDVG1VCN = NAND(AD0, P4)\r\nCNTVG3VZ1 = NAND(CT2, CNTVG3VD1)\r\nCNTVG2VZ1 = NAND(CT1, CNTVG2VD1)\r\nCNTVG1VZ1 = NAND(CT0, CNTVG1VD1)\r\nADDVG1VP = NAND(ADDVG1VPVOR1NF, ADDVG1VCN)\r\nCNTVG3VZ = NAND(CNTVG3VG2VOR1NF, CNTVG3VZ1)\r\nCNTVG2VZ = NAND(CNTVG2VG2VOR1NF, CNTVG2VZ1)\r\nACVG1VD1 = NAND(ACVPCN, SM0)\r\nACVG2VD1 = NAND(ACVPCN, SM1)\r\nACVG4VD1 = NAND(ACVPCN, SM3)\r\nACVG3VD1 = NAND(ACVPCN, SM2)\r\nINIT = NOR(CT0, CT1, CT2)\r\nCNTVCO1 = NOR(CNTVG2VQN, CNTVCON0)\r\nCNTVCO2 = NOR(CNTVG3VQN, CNTVCON1)\r\nADSH = NOR(READY, INIT)\r\nCNTVG2VD1 = NOR(READY, CNTVCON0)\r\nAMVG5VX = NOR(AMVG5VG1VAD2NF, AMVG5VG1VAD1NF)\r\nAMVG4VX = NOR(AMVG4VG1VAD2NF, AMVG4VG1VAD1NF)\r\nAMVG3VX = NOR(AMVG3VG1VAD2NF, AMVG3VG1VAD1NF)\r\nAMVG2VX = NOR(AMVG2VG1VAD2NF, AMVG2VG1VAD1NF)\r\nBMVG5VX = NOR(BMVG5VG1VAD2NF, BMVG5VG1VAD1NF)\r\nBMVG4VX = NOR(BMVG4VG1VAD2NF, BMVG4VG1VAD1NF)\r\nBMVG3VX = NOR(BMVG3VG1VAD2NF, BMVG3VG1VAD1NF)\r\nBMVG2VX = NOR(BMVG2VG1VAD2NF, BMVG2VG1VAD1NF)\r\nCNTVG3VD = NOR(CNTVG3VZ, START)\r\nCNTVG2VD = NOR(CNTVG2VZ, START)\r\nCNTVG1VD = NOR(CNTVG1VZ, START)\r\nADDVG2VCN = NOR(ADDVG2VCNVAD2NF, ADDVG2VCNVAD1NF)\r\nMRVG4VD = NOR(MRVG4VDVAD2NF, MRVG4VDVAD1NF)\r\nMRVG3VD = NOR(MRVG3VDVAD2NF, MRVG3VDVAD1NF)\r\nMRVG2VD = NOR(MRVG2VDVAD2NF, MRVG2VDVAD1NF)\r\nMRVG1VD = NOR(MRVG1VDVAD2NF, MRVG1VDVAD1NF)\r\nADDVG2VSN = NOR(ADDVG2VCNVAD4NF, ADDVG2VCNVAD3NF)\r\nADDVG3VCN = NOR(ADDVG3VCNVAD2NF, ADDVG3VCNVAD1NF)\r\nADDVG3VSN = NOR(ADDVG3VCNVAD4NF, ADDVG3VCNVAD3NF)\r\nSMVG2VX = NOR(SMVG2VG1VAD2NF, SMVG2VG1VAD1NF)\r\nADDVG4VCN = NOR(ADDVG4VCNVAD2NF, ADDVG4VCNVAD1NF)\r\nADDVG4VSN = NOR(ADDVG4VCNVAD4NF, ADDVG4VCNVAD3NF)\r\nSMVG3VX = NOR(SMVG3VG1VAD2NF, SMVG3VG1VAD1NF)\r\nSMVG5VX = NOR(SMVG5VG1VAD2NF, SMVG5VG1VAD1NF)\r\nSMVG4VX = NOR(SMVG4VG1VAD2NF, SMVG4VG1VAD1NF)\r\n"
                );
             */

            /*
            // s5378 Long time execution.
            ValidateTests(
                "# s5378\r\n# 35 inputs\r\n# 49 outputs\r\n# 179 D-type flipflops\r\n# 1775 inverters\r\n# 1004 gates (0 ANDs + 0 NANDs + 239 ORs + 765 NORs)\r\nINPUT(n3065gat)\r\nINPUT(n3066gat)\r\nINPUT(n3067gat)\r\nINPUT(n3068gat)\r\nINPUT(n3069gat)\r\nINPUT(n3070gat)\r\nINPUT(n3071gat)\r\nINPUT(n3072gat)\r\nINPUT(n3073gat)\r\nINPUT(n3074gat)\r\nINPUT(n3075gat)\r\nINPUT(n3076gat)\r\nINPUT(n3077gat)\r\nINPUT(n3078gat)\r\nINPUT(n3079gat)\r\nINPUT(n3080gat)\r\nINPUT(n3081gat)\r\nINPUT(n3082gat)\r\nINPUT(n3083gat)\r\nINPUT(n3084gat)\r\nINPUT(n3085gat)\r\nINPUT(n3086gat)\r\nINPUT(n3087gat)\r\nINPUT(n3088gat)\r\nINPUT(n3089gat)\r\nINPUT(n3090gat)\r\nINPUT(n3091gat)\r\nINPUT(n3092gat)\r\nINPUT(n3093gat)\r\nINPUT(n3094gat)\r\nINPUT(n3095gat)\r\nINPUT(n3097gat)\r\nINPUT(n3098gat)\r\nINPUT(n3099gat)\r\nINPUT(n3100gat)\r\nOUTPUT(n3104gat)\r\nOUTPUT(n3105gat)\r\nOUTPUT(n3106gat)\r\nOUTPUT(n3107gat)\r\nOUTPUT(n3108gat)\r\nOUTPUT(n3109gat)\r\nOUTPUT(n3110gat)\r\nOUTPUT(n3111gat)\r\nOUTPUT(n3112gat)\r\nOUTPUT(n3113gat)\r\nOUTPUT(n3114gat)\r\nOUTPUT(n3115gat)\r\nOUTPUT(n3116gat)\r\nOUTPUT(n3117gat)\r\nOUTPUT(n3118gat)\r\nOUTPUT(n3119gat)\r\nOUTPUT(n3120gat)\r\nOUTPUT(n3121gat)\r\nOUTPUT(n3122gat)\r\nOUTPUT(n3123gat)\r\nOUTPUT(n3124gat)\r\nOUTPUT(n3125gat)\r\nOUTPUT(n3126gat)\r\nOUTPUT(n3127gat)\r\nOUTPUT(n3128gat)\r\nOUTPUT(n3129gat)\r\nOUTPUT(n3130gat)\r\nOUTPUT(n3131gat)\r\nOUTPUT(n3132gat)\r\nOUTPUT(n3133gat)\r\nOUTPUT(n3134gat)\r\nOUTPUT(n3135gat)\r\nOUTPUT(n3136gat)\r\nOUTPUT(n3137gat)\r\nOUTPUT(n3138gat)\r\nOUTPUT(n3139gat)\r\nOUTPUT(n3140gat)\r\nOUTPUT(n3141gat)\r\nOUTPUT(n3142gat)\r\nOUTPUT(n3143gat)\r\nOUTPUT(n3144gat)\r\nOUTPUT(n3145gat)\r\nOUTPUT(n3146gat)\r\nOUTPUT(n3147gat)\r\nOUTPUT(n3148gat)\r\nOUTPUT(n3149gat)\r\nOUTPUT(n3150gat)\r\nOUTPUT(n3151gat)\r\nOUTPUT(n3152gat)\r\nn673gat = DFF(n2897gat)\r\nn398gat = DFF(n2782gat)\r\nn402gat = DFF(n2790gat)\r\nn919gat = DFF(n2670gat)\r\nn846gat = DFF(n2793gat)\r\nn394gat = DFF(n2782gat)\r\nn703gat = DFF(n2790gat)\r\nn722gat = DFF(n2670gat)\r\nn726gat = DFF(n2793gat)\r\nn2510gat = DFF(n748gat)\r\nn271gat = DFF(n2732gat)\r\nn160gat = DFF(n2776gat)\r\nn337gat = DFF(n2735gat)\r\nn842gat = DFF(n2673gat)\r\nn341gat = DFF(n2779gat)\r\nn2522gat = DFF(n43gat)\r\nn2472gat = DFF(n1620gat)\r\nn2319gat = DFF(n2470gat)\r\nn1821gat = DFF(n1827gat)\r\nn1825gat = DFF(n1827gat)\r\nn2029gat = DFF(n1816gat)\r\nn1829gat = DFF(n2027gat)\r\nn283gat = DFF(n2732gat)\r\nn165gat = DFF(n2776gat)\r\nn279gat = DFF(n2735gat)\r\nn1026gat = DFF(n2673gat)\r\nn275gat = DFF(n2779gat)\r\nn2476gat = DFF(n55gat)\r\nn1068gat = DFF(n2914gat)\r\nn957gat = DFF(n2928gat)\r\nn861gat = DFF(n2927gat)\r\nn1294gat = DFF(n2896gat)\r\nn1241gat = DFF(n2922gat)\r\nn1298gat = DFF(n2897gat)\r\nn865gat = DFF(n2894gat)\r\nn1080gat = DFF(n2921gat)\r\nn1148gat = DFF(n2895gat)\r\nn2468gat = DFF(n933gat)\r\nn618gat = DFF(n2790gat)\r\nn491gat = DFF(n2782gat)\r\nn622gat = DFF(n2793gat)\r\nn626gat = DFF(n2670gat)\r\nn834gat = DFF(n3064gat)\r\nn707gat = DFF(n3055gat)\r\nn838gat = DFF(n3063gat)\r\nn830gat = DFF(n3062gat)\r\nn614gat = DFF(n3056gat)\r\nn2526gat = DFF(n504gat)\r\nn680gat = DFF(n2913gat)\r\nn816gat = DFF(n2920gat)\r\nn580gat = DFF(n2905gat)\r\nn824gat = DFF(n3057gat)\r\nn820gat = DFF(n3059gat)\r\nn883gat = DFF(n3058gat)\r\nn584gat = DFF(n2898gat)\r\nn684gat = DFF(n3060gat)\r\nn699gat = DFF(n3061gat)\r\nn2464gat = DFF(n567gat)\r\nn2399gat = DFF(n3048gat)\r\nn2343gat = DFF(n3049gat)\r\nn2203gat = DFF(n3051gat)\r\nn2562gat = DFF(n3047gat)\r\nn2207gat = DFF(n3050gat)\r\nn2626gat = DFF(n3040gat)\r\nn2490gat = DFF(n3044gat)\r\nn2622gat = DFF(n3042gat)\r\nn2630gat = DFF(n3037gat)\r\nn2543gat = DFF(n3041gat)\r\nn2102gat = DFF(n1606gat)\r\nn1880gat = DFF(n3052gat)\r\nn1763gat = DFF(n1610gat)\r\nn2155gat = DFF(n1858gat)\r\nn1035gat = DFF(n2918gat)\r\nn1121gat = DFF(n2952gat)\r\nn1072gat = DFF(n2919gat)\r\nn1282gat = DFF(n2910gat)\r\nn1226gat = DFF(n2907gat)\r\nn931gat = DFF(n2911gat)\r\nn1135gat = DFF(n2912gat)\r\nn1045gat = DFF(n2909gat)\r\nn1197gat = DFF(n2908gat)\r\nn2518gat = DFF(n2971gat)\r\nn667gat = DFF(n2904gat)\r\nn659gat = DFF(n2891gat)\r\nn553gat = DFF(n2903gat)\r\nn777gat = DFF(n2915gat)\r\nn561gat = DFF(n2901gat)\r\nn366gat = DFF(n2890gat)\r\nn322gat = DFF(n2888gat)\r\nn318gat = DFF(n2887gat)\r\nn314gat = DFF(n2886gat)\r\nn2599gat = DFF(n3010gat)\r\nn2588gat = DFF(n3016gat)\r\nn2640gat = DFF(n3054gat)\r\nn2658gat = DFF(n2579gat)\r\nn2495gat = DFF(n3036gat)\r\nn2390gat = DFF(n3034gat)\r\nn2270gat = DFF(n3031gat)\r\nn2339gat = DFF(n3035gat)\r\nn2502gat = DFF(n2646gat)\r\nn2634gat = DFF(n3053gat)\r\nn2506gat = DFF(n2613gat)\r\nn1834gat = DFF(n1625gat)\r\nn1767gat = DFF(n1626gat)\r\nn2084gat = DFF(n1603gat)\r\nn2143gat = DFF(n2541gat)\r\nn2061gat = DFF(n2557gat)\r\nn2139gat = DFF(n2487gat)\r\nn1899gat = DFF(n2532gat)\r\nn1850gat = DFF(n2628gat)\r\nn2403gat = DFF(n2397gat)\r\nn2394gat = DFF(n2341gat)\r\nn2440gat = DFF(n2560gat)\r\nn2407gat = DFF(n2205gat)\r\nn2347gat = DFF(n2201gat)\r\nn1389gat = DFF(n1793gat)\r\nn2021gat = DFF(n1781gat)\r\nn1394gat = DFF(n1516gat)\r\nn1496gat = DFF(n1392gat)\r\nn2091gat = DFF(n1685gat)\r\nn1332gat = DFF(n1565gat)\r\nn1740gat = DFF(n1330gat)\r\nn2179gat = DFF(n1945gat)\r\nn2190gat = DFF(n2268gat)\r\nn2135gat = DFF(n2337gat)\r\nn2262gat = DFF(n2388gat)\r\nn2182gat = DFF(n1836gat)\r\nn1433gat = DFF(n2983gat)\r\nn1316gat = DFF(n1431gat)\r\nn1363gat = DFF(n1314gat)\r\nn1312gat = DFF(n1361gat)\r\nn1775gat = DFF(n1696gat)\r\nn1871gat = DFF(n2009gat)\r\nn2592gat = DFF(n1773gat)\r\nn1508gat = DFF(n1636gat)\r\nn1678gat = DFF(n1712gat)\r\nn2309gat = DFF(n3000gat)\r\nn2450gat = DFF(n2307gat)\r\nn2446gat = DFF(n2661gat)\r\nn2095gat = DFF(n827gat)\r\nn2176gat = DFF(n2093gat)\r\nn2169gat = DFF(n2174gat)\r\nn2454gat = DFF(n2163gat)\r\nn2040gat = DFF(n1777gat)\r\nn2044gat = DFF(n2015gat)\r\nn2037gat = DFF(n2042gat)\r\nn2025gat = DFF(n2017gat)\r\nn2099gat = DFF(n2023gat)\r\nn2266gat = DFF(n2493gat)\r\nn2033gat = DFF(n2035gat)\r\nn2110gat = DFF(n2031gat)\r\nn2125gat = DFF(n2108gat)\r\nn2121gat = DFF(n2123gat)\r\nn2117gat = DFF(n2119gat)\r\nn1975gat = DFF(n2632gat)\r\nn2644gat = DFF(n2638gat)\r\nn156gat = DFF(n612gat)\r\nn152gat = DFF(n705gat)\r\nn331gat = DFF(n822gat)\r\nn388gat = DFF(n881gat)\r\nn463gat = DFF(n818gat)\r\nn327gat = DFF(n682gat)\r\nn384gat = DFF(n697gat)\r\nn256gat = DFF(n836gat)\r\nn470gat = DFF(n828gat)\r\nn148gat = DFF(n832gat)\r\nn2458gat = DFF(n2590gat)\r\nn2514gat = DFF(n2456gat)\r\nn1771gat = DFF(n1613gat)\r\nn1336gat = DFF(n1391gat)\r\nn1748gat = DFF(n1927gat)\r\nn1675gat = DFF(n1713gat)\r\nn1807gat = DFF(n1717gat)\r\nn1340gat = DFF(n1567gat)\r\nn1456gat = DFF(n1564gat)\r\nn1525gat = DFF(n1632gat)\r\nn1462gat = DFF(n1915gat)\r\nn1596gat = DFF(n1800gat)\r\nn1588gat = DFF(n1593gat)\r\nI1 = NOT(n3088gat)\r\nn2717gat = NOT(I1)\r\nn2715gat = NOT(n2717gat)\r\nI5 = NOT(n3087gat)\r\nn2725gat = NOT(I5)\r\nn2723gat = NOT(n2725gat)\r\nn296gat = NOT(n421gat)\r\nI11 = NOT(n3093gat)\r\nn2768gat = NOT(I11)\r\nI14 = NOT(n2768gat)\r\nn2767gat = NOT(I14)\r\nn373gat = NOT(n2767gat)\r\nI18 = NOT(n3072gat)\r\nn2671gat = NOT(I18)\r\nn2669gat = NOT(n2671gat)\r\nI23 = NOT(n3081gat)\r\nn2845gat = NOT(I23)\r\nn2844gat = NOT(n2845gat)\r\nI27 = NOT(n3095gat)\r\nn2668gat = NOT(I27)\r\nI30 = NOT(n2668gat)\r\nn2667gat = NOT(I30)\r\nn856gat = NOT(n2667gat)\r\nI44 = NOT(n673gat)\r\nn672gat = NOT(I44)\r\nI47 = NOT(n3069gat)\r\nn2783gat = NOT(I47)\r\nI50 = NOT(n2783gat)\r\nn2782gat = NOT(I50)\r\nn396gat = NOT(n398gat)\r\nI62 = NOT(n3070gat)\r\nn2791gat = NOT(I62)\r\nI65 = NOT(n2791gat)\r\nn2790gat = NOT(I65)\r\nI76 = NOT(n402gat)\r\nn401gat = NOT(I76)\r\nn1645gat = NOT(n1499gat)\r\nI81 = NOT(n2671gat)\r\nn2670gat = NOT(I81)\r\nI92 = NOT(n919gat)\r\nn918gat = NOT(I92)\r\nn1553gat = NOT(n1616gat)\r\nI97 = NOT(n3071gat)\r\nn2794gat = NOT(I97)\r\nI100 = NOT(n2794gat)\r\nn2793gat = NOT(I100)\r\nI111 = NOT(n846gat)\r\nn845gat = NOT(I111)\r\nn1559gat = NOT(n1614gat)\r\nn1643gat = NOT(n1641gat)\r\nn1651gat = NOT(n1642gat)\r\nn1562gat = NOT(n1556gat)\r\nn1560gat = NOT(n1557gat)\r\nn1640gat = NOT(n1639gat)\r\nn1566gat = NOT(n1605gat)\r\nn1554gat = NOT(n1555gat)\r\nn1722gat = NOT(n1558gat)\r\nn392gat = NOT(n394gat)\r\nI149 = NOT(n703gat)\r\nn702gat = NOT(I149)\r\nn1319gat = NOT(n1256gat)\r\nn720gat = NOT(n722gat)\r\nI171 = NOT(n726gat)\r\nn725gat = NOT(I171)\r\nn1447gat = NOT(n1117gat)\r\nn1627gat = NOT(n1618gat)\r\nI178 = NOT(n722gat)\r\nn721gat = NOT(I178)\r\nn1380gat = NOT(n1114gat)\r\nn1628gat = NOT(n1621gat)\r\nn701gat = NOT(n703gat)\r\nn1446gat = NOT(n1318gat)\r\nn1705gat = NOT(n1619gat)\r\nn1706gat = NOT(n1622gat)\r\nI192 = NOT(n3083gat)\r\nn2856gat = NOT(I192)\r\nn2854gat = NOT(n2856gat)\r\nI196 = NOT(n2854gat)\r\nn1218gat = NOT(I196)\r\nI199 = NOT(n3085gat)\r\nn2861gat = NOT(I199)\r\nn2859gat = NOT(n2861gat)\r\nI203 = NOT(n2859gat)\r\nn1219gat = NOT(I203)\r\nI206 = NOT(n3084gat)\r\nn2864gat = NOT(I206)\r\nn2862gat = NOT(n2864gat)\r\nI210 = NOT(n2862gat)\r\nn1220gat = NOT(I210)\r\nI214 = NOT(n2861gat)\r\nn2860gat = NOT(I214)\r\nI217 = NOT(n2860gat)\r\nn1221gat = NOT(I217)\r\nI220 = NOT(n2864gat)\r\nn2863gat = NOT(I220)\r\nI223 = NOT(n2863gat)\r\nn1222gat = NOT(I223)\r\nI227 = NOT(n2856gat)\r\nn2855gat = NOT(I227)\r\nI230 = NOT(n2855gat)\r\nn1223gat = NOT(I230)\r\nn640gat = NOT(n1213gat)\r\nI237 = NOT(n640gat)\r\nn753gat = NOT(I237)\r\nI240 = NOT(n2717gat)\r\nn2716gat = NOT(I240)\r\nI243 = NOT(n3089gat)\r\nn2869gat = NOT(I243)\r\nn2867gat = NOT(n2869gat)\r\nI248 = NOT(n2869gat)\r\nn2868gat = NOT(I248)\r\nI253 = NOT(n2906gat)\r\nn754gat = NOT(I253)\r\nI256 = NOT(n2725gat)\r\nn2724gat = NOT(I256)\r\nI259 = NOT(n3086gat)\r\nn2728gat = NOT(I259)\r\nn2726gat = NOT(n2728gat)\r\nI264 = NOT(n2728gat)\r\nn2727gat = NOT(I264)\r\nn422gat = NOT(n2889gat)\r\nI270 = NOT(n422gat)\r\nn755gat = NOT(I270)\r\nn747gat = NOT(n2906gat)\r\nI275 = NOT(n747gat)\r\nn756gat = NOT(I275)\r\nI278 = NOT(n2889gat)\r\nn757gat = NOT(I278)\r\nI282 = NOT(n1213gat)\r\nn758gat = NOT(I282)\r\nn2508gat = NOT(n2510gat)\r\nI297 = NOT(n3065gat)\r\nn2733gat = NOT(I297)\r\nI300 = NOT(n2733gat)\r\nn2732gat = NOT(I300)\r\nI311 = NOT(n271gat)\r\nn270gat = NOT(I311)\r\nI314 = NOT(n270gat)\r\nn263gat = NOT(I314)\r\nI317 = NOT(n3067gat)\r\nn2777gat = NOT(I317)\r\nI320 = NOT(n2777gat)\r\nn2776gat = NOT(I320)\r\nI331 = NOT(n160gat)\r\nn159gat = NOT(I331)\r\nI334 = NOT(n159gat)\r\nn264gat = NOT(I334)\r\nI337 = NOT(n3066gat)\r\nn2736gat = NOT(I337)\r\nI340 = NOT(n2736gat)\r\nn2735gat = NOT(I340)\r\nI351 = NOT(n337gat)\r\nn336gat = NOT(I351)\r\nI354 = NOT(n336gat)\r\nn265gat = NOT(I354)\r\nn158gat = NOT(n160gat)\r\nI359 = NOT(n158gat)\r\nn266gat = NOT(I359)\r\nn335gat = NOT(n337gat)\r\nI363 = NOT(n335gat)\r\nn267gat = NOT(I363)\r\nn269gat = NOT(n271gat)\r\nI368 = NOT(n269gat)\r\nn268gat = NOT(I368)\r\nn41gat = NOT(n258gat)\r\nI375 = NOT(n41gat)\r\nn48gat = NOT(I375)\r\nI378 = NOT(n725gat)\r\nn1018gat = NOT(I378)\r\nI381 = NOT(n3073gat)\r\nn2674gat = NOT(I381)\r\nI384 = NOT(n2674gat)\r\nn2673gat = NOT(I384)\r\nI395 = NOT(n842gat)\r\nn841gat = NOT(I395)\r\nI398 = NOT(n841gat)\r\nn1019gat = NOT(I398)\r\nI401 = NOT(n721gat)\r\nn1020gat = NOT(I401)\r\nn840gat = NOT(n842gat)\r\nI406 = NOT(n840gat)\r\nn1021gat = NOT(I406)\r\nI409 = NOT(n720gat)\r\nn1022gat = NOT(I409)\r\nn724gat = NOT(n726gat)\r\nI414 = NOT(n724gat)\r\nn1023gat = NOT(I414)\r\nI420 = NOT(n1013gat)\r\nn49gat = NOT(I420)\r\nI423 = NOT(n3068gat)\r\nn2780gat = NOT(I423)\r\nI426 = NOT(n2780gat)\r\nn2779gat = NOT(I426)\r\nI437 = NOT(n341gat)\r\nn340gat = NOT(I437)\r\nI440 = NOT(n340gat)\r\nn480gat = NOT(I440)\r\nI443 = NOT(n702gat)\r\nn481gat = NOT(I443)\r\nI446 = NOT(n394gat)\r\nn393gat = NOT(I446)\r\nI449 = NOT(n393gat)\r\nn482gat = NOT(I449)\r\nI453 = NOT(n701gat)\r\nn483gat = NOT(I453)\r\nI456 = NOT(n392gat)\r\nn484gat = NOT(I456)\r\nn339gat = NOT(n341gat)\r\nI461 = NOT(n339gat)\r\nn485gat = NOT(I461)\r\nn42gat = NOT(n475gat)\r\nI468 = NOT(n42gat)\r\nn50gat = NOT(I468)\r\nn162gat = NOT(n1013gat)\r\nI473 = NOT(n162gat)\r\nn51gat = NOT(I473)\r\nI476 = NOT(n475gat)\r\nn52gat = NOT(I476)\r\nI480 = NOT(n258gat)\r\nn53gat = NOT(I480)\r\nn2520gat = NOT(n2522gat)\r\nn1448gat = NOT(n1376gat)\r\nn1701gat = NOT(n1617gat)\r\nn1379gat = NOT(n1377gat)\r\nn1615gat = NOT(n1624gat)\r\nn1500gat = NOT(n1113gat)\r\nn1503gat = NOT(n1501gat)\r\nn1779gat = NOT(n1623gat)\r\nI509 = NOT(n3099gat)\r\nn2730gat = NOT(I509)\r\nI512 = NOT(n2730gat)\r\nn2729gat = NOT(I512)\r\nn2470gat = NOT(n2472gat)\r\nn2317gat = NOT(n2319gat)\r\nn1819gat = NOT(n1821gat)\r\nn1823gat = NOT(n1825gat)\r\nn1816gat = NOT(n1817gat)\r\nn2027gat = NOT(n2029gat)\r\nI572 = NOT(n1829gat)\r\nn1828gat = NOT(I572)\r\nI576 = NOT(n3100gat)\r\nn2851gat = NOT(I576)\r\nI579 = NOT(n2851gat)\r\nn2850gat = NOT(I579)\r\nI583 = NOT(n2786gat)\r\nn2785gat = NOT(I583)\r\nn92gat = NOT(n2785gat)\r\nn637gat = NOT(n529gat)\r\nn293gat = NOT(n361gat)\r\nI591 = NOT(n3094gat)\r\nn2722gat = NOT(I591)\r\nI594 = NOT(n2722gat)\r\nn2721gat = NOT(I594)\r\nn297gat = NOT(n2721gat)\r\nI606 = NOT(n283gat)\r\nn282gat = NOT(I606)\r\nI609 = NOT(n282gat)\r\nn172gat = NOT(I609)\r\nI620 = NOT(n165gat)\r\nn164gat = NOT(I620)\r\nI623 = NOT(n164gat)\r\nn173gat = NOT(I623)\r\nI634 = NOT(n279gat)\r\nn278gat = NOT(I634)\r\nI637 = NOT(n278gat)\r\nn174gat = NOT(I637)\r\nn163gat = NOT(n165gat)\r\nI642 = NOT(n163gat)\r\nn175gat = NOT(I642)\r\nn277gat = NOT(n279gat)\r\nI646 = NOT(n277gat)\r\nn176gat = NOT(I646)\r\nn281gat = NOT(n283gat)\r\nI651 = NOT(n281gat)\r\nn177gat = NOT(I651)\r\nn54gat = NOT(n167gat)\r\nI658 = NOT(n54gat)\r\nn60gat = NOT(I658)\r\nI661 = NOT(n845gat)\r\nn911gat = NOT(I661)\r\nI672 = NOT(n1026gat)\r\nn1025gat = NOT(I672)\r\nI675 = NOT(n1025gat)\r\nn912gat = NOT(I675)\r\nI678 = NOT(n918gat)\r\nn913gat = NOT(I678)\r\nn1024gat = NOT(n1026gat)\r\nI683 = NOT(n1024gat)\r\nn914gat = NOT(I683)\r\nn917gat = NOT(n919gat)\r\nI687 = NOT(n917gat)\r\nn915gat = NOT(I687)\r\nn844gat = NOT(n846gat)\r\nI692 = NOT(n844gat)\r\nn916gat = NOT(I692)\r\nI698 = NOT(n906gat)\r\nn61gat = NOT(I698)\r\nI709 = NOT(n275gat)\r\nn274gat = NOT(I709)\r\nI712 = NOT(n274gat)\r\nn348gat = NOT(I712)\r\nI715 = NOT(n401gat)\r\nn349gat = NOT(I715)\r\nI718 = NOT(n398gat)\r\nn397gat = NOT(I718)\r\nI721 = NOT(n397gat)\r\nn350gat = NOT(I721)\r\nn400gat = NOT(n402gat)\r\nI726 = NOT(n400gat)\r\nn351gat = NOT(I726)\r\nI729 = NOT(n396gat)\r\nn352gat = NOT(I729)\r\nn273gat = NOT(n275gat)\r\nI734 = NOT(n273gat)\r\nn353gat = NOT(I734)\r\nn178gat = NOT(n343gat)\r\nI741 = NOT(n178gat)\r\nn62gat = NOT(I741)\r\nn66gat = NOT(n906gat)\r\nI746 = NOT(n66gat)\r\nn63gat = NOT(I746)\r\nI749 = NOT(n343gat)\r\nn64gat = NOT(I749)\r\nI753 = NOT(n167gat)\r\nn65gat = NOT(I753)\r\nn2474gat = NOT(n2476gat)\r\nI768 = NOT(n3090gat)\r\nn2832gat = NOT(I768)\r\nI771 = NOT(n2832gat)\r\nn2831gat = NOT(I771)\r\nn2731gat = NOT(n2733gat)\r\nI776 = NOT(n3074gat)\r\nn2719gat = NOT(I776)\r\nn2718gat = NOT(n2719gat)\r\nI790 = NOT(n1068gat)\r\nn1067gat = NOT(I790)\r\nI793 = NOT(n1067gat)\r\nn949gat = NOT(I793)\r\nI796 = NOT(n3076gat)\r\nn2839gat = NOT(I796)\r\nn2838gat = NOT(n2839gat)\r\nn2775gat = NOT(n2777gat)\r\nI812 = NOT(n957gat)\r\nn956gat = NOT(I812)\r\nI815 = NOT(n956gat)\r\nn950gat = NOT(I815)\r\nI818 = NOT(n3075gat)\r\nn2712gat = NOT(I818)\r\nn2711gat = NOT(n2712gat)\r\nn2734gat = NOT(n2736gat)\r\nI834 = NOT(n861gat)\r\nn860gat = NOT(I834)\r\nI837 = NOT(n860gat)\r\nn951gat = NOT(I837)\r\nn955gat = NOT(n957gat)\r\nI842 = NOT(n955gat)\r\nn952gat = NOT(I842)\r\nn859gat = NOT(n861gat)\r\nI846 = NOT(n859gat)\r\nn953gat = NOT(I846)\r\nn1066gat = NOT(n1068gat)\r\nI851 = NOT(n1066gat)\r\nn954gat = NOT(I851)\r\nn857gat = NOT(n944gat)\r\nI858 = NOT(n857gat)\r\nn938gat = NOT(I858)\r\nn2792gat = NOT(n2794gat)\r\nI863 = NOT(n3080gat)\r\nn2847gat = NOT(I863)\r\nn2846gat = NOT(n2847gat)\r\nI877 = NOT(n1294gat)\r\nn1293gat = NOT(I877)\r\nI880 = NOT(n1293gat)\r\nn1233gat = NOT(I880)\r\nn2672gat = NOT(n2674gat)\r\nI885 = NOT(n3082gat)\r\nn2853gat = NOT(I885)\r\nn2852gat = NOT(n2853gat)\r\nI899 = NOT(n1241gat)\r\nn1240gat = NOT(I899)\r\nI902 = NOT(n1240gat)\r\nn1234gat = NOT(I902)\r\nI913 = NOT(n1298gat)\r\nn1297gat = NOT(I913)\r\nI916 = NOT(n1297gat)\r\nn1235gat = NOT(I916)\r\nn1239gat = NOT(n1241gat)\r\nI921 = NOT(n1239gat)\r\nn1236gat = NOT(I921)\r\nn1296gat = NOT(n1298gat)\r\nI925 = NOT(n1296gat)\r\nn1237gat = NOT(I925)\r\nn1292gat = NOT(n1294gat)\r\nI930 = NOT(n1292gat)\r\nn1238gat = NOT(I930)\r\nI936 = NOT(n1228gat)\r\nn939gat = NOT(I936)\r\nn2778gat = NOT(n2780gat)\r\nI941 = NOT(n3077gat)\r\nn2837gat = NOT(I941)\r\nn2836gat = NOT(n2837gat)\r\nI955 = NOT(n865gat)\r\nn864gat = NOT(I955)\r\nI958 = NOT(n864gat)\r\nn1055gat = NOT(I958)\r\nn2789gat = NOT(n2791gat)\r\nI963 = NOT(n3079gat)\r\nn2841gat = NOT(I963)\r\nn2840gat = NOT(n2841gat)\r\nI977 = NOT(n1080gat)\r\nn1079gat = NOT(I977)\r\nI980 = NOT(n1079gat)\r\nn1056gat = NOT(I980)\r\nn2781gat = NOT(n2783gat)\r\nI985 = NOT(n3078gat)\r\nn2843gat = NOT(I985)\r\nn2842gat = NOT(n2843gat)\r\nI999 = NOT(n1148gat)\r\nn1147gat = NOT(I999)\r\nI1002 = NOT(n1147gat)\r\nn1057gat = NOT(I1002)\r\nn1078gat = NOT(n1080gat)\r\nI1007 = NOT(n1078gat)\r\nn1058gat = NOT(I1007)\r\nn1146gat = NOT(n1148gat)\r\nI1011 = NOT(n1146gat)\r\nn1059gat = NOT(I1011)\r\nn863gat = NOT(n865gat)\r\nI1016 = NOT(n863gat)\r\nn1060gat = NOT(I1016)\r\nn928gat = NOT(n1050gat)\r\nI1023 = NOT(n928gat)\r\nn940gat = NOT(I1023)\r\nn858gat = NOT(n1228gat)\r\nI1028 = NOT(n858gat)\r\nn941gat = NOT(I1028)\r\nI1031 = NOT(n1050gat)\r\nn942gat = NOT(I1031)\r\nI1035 = NOT(n944gat)\r\nn943gat = NOT(I1035)\r\nn2466gat = NOT(n2468gat)\r\nn2720gat = NOT(n2722gat)\r\nn740gat = NOT(n2667gat)\r\nn2784gat = NOT(n2786gat)\r\nn743gat = NOT(n746gat)\r\nn294gat = NOT(n360gat)\r\nn374gat = NOT(n2767gat)\r\nn616gat = NOT(n618gat)\r\nI1067 = NOT(n616gat)\r\nn501gat = NOT(I1067)\r\nn489gat = NOT(n491gat)\r\nI1079 = NOT(n489gat)\r\nn502gat = NOT(I1079)\r\nI1082 = NOT(n618gat)\r\nn617gat = NOT(I1082)\r\nI1085 = NOT(n617gat)\r\nn499gat = NOT(I1085)\r\nI1088 = NOT(n491gat)\r\nn490gat = NOT(I1088)\r\nI1091 = NOT(n490gat)\r\nn500gat = NOT(I1091)\r\nn620gat = NOT(n622gat)\r\nI1103 = NOT(n620gat)\r\nn738gat = NOT(I1103)\r\nn624gat = NOT(n626gat)\r\nI1115 = NOT(n624gat)\r\nn737gat = NOT(I1115)\r\nI1118 = NOT(n622gat)\r\nn621gat = NOT(I1118)\r\nI1121 = NOT(n621gat)\r\nn733gat = NOT(I1121)\r\nI1124 = NOT(n626gat)\r\nn625gat = NOT(I1124)\r\nI1127 = NOT(n625gat)\r\nn735gat = NOT(I1127)\r\nI1138 = NOT(n834gat)\r\nn833gat = NOT(I1138)\r\nI1141 = NOT(n833gat)\r\nn714gat = NOT(I1141)\r\nI1152 = NOT(n707gat)\r\nn706gat = NOT(I1152)\r\nI1155 = NOT(n706gat)\r\nn715gat = NOT(I1155)\r\nI1166 = NOT(n838gat)\r\nn837gat = NOT(I1166)\r\nI1169 = NOT(n837gat)\r\nn716gat = NOT(I1169)\r\nn705gat = NOT(n707gat)\r\nI1174 = NOT(n705gat)\r\nn717gat = NOT(I1174)\r\nn836gat = NOT(n838gat)\r\nI1178 = NOT(n836gat)\r\nn718gat = NOT(I1178)\r\nn832gat = NOT(n834gat)\r\nI1183 = NOT(n832gat)\r\nn719gat = NOT(I1183)\r\nn515gat = NOT(n709gat)\r\nI1190 = NOT(n515gat)\r\nn509gat = NOT(I1190)\r\nI1201 = NOT(n830gat)\r\nn829gat = NOT(I1201)\r\nI1204 = NOT(n829gat)\r\nn734gat = NOT(I1204)\r\nn828gat = NOT(n830gat)\r\nI1209 = NOT(n828gat)\r\nn736gat = NOT(I1209)\r\nI1216 = NOT(n728gat)\r\nn510gat = NOT(I1216)\r\nI1227 = NOT(n614gat)\r\nn613gat = NOT(I1227)\r\nI1230 = NOT(n613gat)\r\nn498gat = NOT(I1230)\r\nn612gat = NOT(n614gat)\r\nI1236 = NOT(n612gat)\r\nn503gat = NOT(I1236)\r\nn404gat = NOT(n493gat)\r\nI1243 = NOT(n404gat)\r\nn511gat = NOT(I1243)\r\nn405gat = NOT(n728gat)\r\nI1248 = NOT(n405gat)\r\nn512gat = NOT(I1248)\r\nI1251 = NOT(n493gat)\r\nn513gat = NOT(I1251)\r\nI1255 = NOT(n709gat)\r\nn514gat = NOT(I1255)\r\nn2524gat = NOT(n2526gat)\r\nn17gat = NOT(n564gat)\r\nn79gat = NOT(n86gat)\r\nn219gat = NOT(n78gat)\r\nn563gat = NOT(I1278)\r\nn289gat = NOT(n563gat)\r\nn179gat = NOT(n287gat)\r\nn188gat = NOT(n288gat)\r\nn72gat = NOT(n181gat)\r\nn111gat = NOT(n182gat)\r\nI1302 = NOT(n680gat)\r\nn679gat = NOT(I1302)\r\nI1305 = NOT(n679gat)\r\nn808gat = NOT(I1305)\r\nI1319 = NOT(n816gat)\r\nn815gat = NOT(I1319)\r\nI1322 = NOT(n815gat)\r\nn809gat = NOT(I1322)\r\nI1336 = NOT(n580gat)\r\nn579gat = NOT(I1336)\r\nI1339 = NOT(n579gat)\r\nn810gat = NOT(I1339)\r\nn814gat = NOT(n816gat)\r\nI1344 = NOT(n814gat)\r\nn811gat = NOT(I1344)\r\nn578gat = NOT(n580gat)\r\nI1348 = NOT(n578gat)\r\nn812gat = NOT(I1348)\r\nn678gat = NOT(n680gat)\r\nI1353 = NOT(n678gat)\r\nn813gat = NOT(I1353)\r\nn677gat = NOT(n803gat)\r\nI1360 = NOT(n677gat)\r\nn572gat = NOT(I1360)\r\nI1371 = NOT(n824gat)\r\nn823gat = NOT(I1371)\r\nI1374 = NOT(n823gat)\r\nn591gat = NOT(I1374)\r\nI1385 = NOT(n820gat)\r\nn819gat = NOT(I1385)\r\nI1388 = NOT(n819gat)\r\nn592gat = NOT(I1388)\r\nI1399 = NOT(n883gat)\r\nn882gat = NOT(I1399)\r\nI1402 = NOT(n882gat)\r\nn593gat = NOT(I1402)\r\nn818gat = NOT(n820gat)\r\nI1407 = NOT(n818gat)\r\nn594gat = NOT(I1407)\r\nn881gat = NOT(n883gat)\r\nI1411 = NOT(n881gat)\r\nn595gat = NOT(I1411)\r\nn822gat = NOT(n824gat)\r\nI1416 = NOT(n822gat)\r\nn596gat = NOT(I1416)\r\nI1422 = NOT(n586gat)\r\nn573gat = NOT(I1422)\r\nI1436 = NOT(n584gat)\r\nn583gat = NOT(I1436)\r\nI1439 = NOT(n583gat)\r\nn691gat = NOT(I1439)\r\nI1450 = NOT(n684gat)\r\nn683gat = NOT(I1450)\r\nI1453 = NOT(n683gat)\r\nn692gat = NOT(I1453)\r\nI1464 = NOT(n699gat)\r\nn698gat = NOT(I1464)\r\nI1467 = NOT(n698gat)\r\nn693gat = NOT(I1467)\r\nn682gat = NOT(n684gat)\r\nI1472 = NOT(n682gat)\r\nn694gat = NOT(I1472)\r\nn697gat = NOT(n699gat)\r\nI1476 = NOT(n697gat)\r\nn695gat = NOT(I1476)\r\nn582gat = NOT(n584gat)\r\nI1481 = NOT(n582gat)\r\nn696gat = NOT(I1481)\r\nn456gat = NOT(n686gat)\r\nI1488 = NOT(n456gat)\r\nn574gat = NOT(I1488)\r\nn565gat = NOT(n586gat)\r\nI1493 = NOT(n565gat)\r\nn575gat = NOT(I1493)\r\nI1496 = NOT(n686gat)\r\nn576gat = NOT(I1496)\r\nI1500 = NOT(n803gat)\r\nn577gat = NOT(I1500)\r\nn2462gat = NOT(n2464gat)\r\nn2665gat = NOT(I1516)\r\nn2596gat = NOT(n2665gat)\r\nn189gat = NOT(n286gat)\r\nn194gat = NOT(n187gat)\r\nn21gat = NOT(n15gat)\r\nI1538 = NOT(n2399gat)\r\nn2398gat = NOT(I1538)\r\nn2353gat = NOT(n2398gat)\r\nI1550 = NOT(n2343gat)\r\nn2342gat = NOT(I1550)\r\nn2284gat = NOT(n2342gat)\r\nn2201gat = NOT(n2203gat)\r\nn2354gat = NOT(n2201gat)\r\nn2560gat = NOT(n2562gat)\r\nn2356gat = NOT(n2560gat)\r\nn2205gat = NOT(n2207gat)\r\nn2214gat = NOT(n2205gat)\r\nn2286gat = NOT(I1585)\r\nn2624gat = NOT(n2626gat)\r\nI1606 = NOT(n2490gat)\r\nn2489gat = NOT(I1606)\r\nI1617 = NOT(n2622gat)\r\nn2621gat = NOT(I1617)\r\nn2533gat = NOT(n2534gat)\r\nI1630 = NOT(n2630gat)\r\nn2629gat = NOT(I1630)\r\nn2486gat = NOT(n2629gat)\r\nn2541gat = NOT(n2543gat)\r\nn2429gat = NOT(n2541gat)\r\nn2432gat = NOT(n2430gat)\r\nI1655 = NOT(n2102gat)\r\nn2101gat = NOT(I1655)\r\nn1693gat = NOT(n2101gat)\r\nI1667 = NOT(n1880gat)\r\nn1879gat = NOT(I1667)\r\nn1698gat = NOT(n1934gat)\r\nn1543gat = NOT(n1606gat)\r\nI1683 = NOT(n1763gat)\r\nn1762gat = NOT(I1683)\r\nn1673gat = NOT(n2989gat)\r\nn1858gat = NOT(n1673gat)\r\nI1698 = NOT(n2155gat)\r\nn2154gat = NOT(I1698)\r\nn2488gat = NOT(n2490gat)\r\nI1703 = NOT(n2626gat)\r\nn2625gat = NOT(I1703)\r\nn2530gat = NOT(n2531gat)\r\nI1708 = NOT(n2543gat)\r\nn2542gat = NOT(I1708)\r\nn2482gat = NOT(n2542gat)\r\nn2426gat = NOT(n2480gat)\r\nn2153gat = NOT(n2155gat)\r\nn2341gat = NOT(n2343gat)\r\nn2355gat = NOT(n2341gat)\r\nI1719 = NOT(n2562gat)\r\nn2561gat = NOT(I1719)\r\nn2443gat = NOT(n2561gat)\r\nn2289gat = NOT(I1724)\r\nn2148gat = NOT(I1734)\r\nn855gat = NOT(n2148gat)\r\nn759gat = NOT(n855gat)\r\nI1749 = NOT(n1035gat)\r\nn1034gat = NOT(I1749)\r\nI1752 = NOT(n1034gat)\r\nn1189gat = NOT(I1752)\r\nn1075gat = NOT(n855gat)\r\nI1766 = NOT(n1121gat)\r\nn1120gat = NOT(I1766)\r\nI1769 = NOT(n1120gat)\r\nn1190gat = NOT(I1769)\r\nn760gat = NOT(n855gat)\r\nI1783 = NOT(n1072gat)\r\nn1071gat = NOT(I1783)\r\nI1786 = NOT(n1071gat)\r\nn1191gat = NOT(I1786)\r\nn1119gat = NOT(n1121gat)\r\nI1791 = NOT(n1119gat)\r\nn1192gat = NOT(I1791)\r\nn1070gat = NOT(n1072gat)\r\nI1795 = NOT(n1070gat)\r\nn1193gat = NOT(I1795)\r\nn1033gat = NOT(n1035gat)\r\nI1800 = NOT(n1033gat)\r\nn1194gat = NOT(I1800)\r\nn1183gat = NOT(n1184gat)\r\nI1807 = NOT(n1183gat)\r\nn1274gat = NOT(I1807)\r\nn644gat = NOT(n855gat)\r\nn1280gat = NOT(n1282gat)\r\nn641gat = NOT(n855gat)\r\nI1833 = NOT(n1226gat)\r\nn1225gat = NOT(I1833)\r\nI1837 = NOT(n1282gat)\r\nn1281gat = NOT(I1837)\r\nn1224gat = NOT(n1226gat)\r\nI1843 = NOT(n2970gat)\r\nn1275gat = NOT(I1843)\r\nn761gat = NOT(n855gat)\r\nI1857 = NOT(n931gat)\r\nn930gat = NOT(I1857)\r\nI1860 = NOT(n930gat)\r\nn1206gat = NOT(I1860)\r\nn762gat = NOT(n855gat)\r\nI1874 = NOT(n1135gat)\r\nn1134gat = NOT(I1874)\r\nI1877 = NOT(n1134gat)\r\nn1207gat = NOT(I1877)\r\nn643gat = NOT(n855gat)\r\nI1891 = NOT(n1045gat)\r\nn1044gat = NOT(I1891)\r\nI1894 = NOT(n1044gat)\r\nn1208gat = NOT(I1894)\r\nn1133gat = NOT(n1135gat)\r\nI1899 = NOT(n1133gat)\r\nn1209gat = NOT(I1899)\r\nn1043gat = NOT(n1045gat)\r\nI1903 = NOT(n1043gat)\r\nn1210gat = NOT(I1903)\r\nn929gat = NOT(n931gat)\r\nI1908 = NOT(n929gat)\r\nn1211gat = NOT(I1908)\r\nn1268gat = NOT(n1201gat)\r\nI1915 = NOT(n1268gat)\r\nn1276gat = NOT(I1915)\r\nn1329gat = NOT(n2970gat)\r\nI1920 = NOT(n1329gat)\r\nn1277gat = NOT(I1920)\r\nI1923 = NOT(n1201gat)\r\nn1278gat = NOT(I1923)\r\nI1927 = NOT(n1184gat)\r\nn1279gat = NOT(I1927)\r\nn1284gat = NOT(n1269gat)\r\nn642gat = NOT(n855gat)\r\nn1195gat = NOT(n1197gat)\r\nI1947 = NOT(n1197gat)\r\nn1196gat = NOT(I1947)\r\nn2516gat = NOT(n2518gat)\r\nI1961 = NOT(n2516gat)\r\nn3017gat = NOT(I1961)\r\nn851gat = NOT(n853gat)\r\nn1725gat = NOT(n2148gat)\r\nn664gat = NOT(n1725gat)\r\nn852gat = NOT(n854gat)\r\nI1981 = NOT(n667gat)\r\nn666gat = NOT(I1981)\r\nn368gat = NOT(n1725gat)\r\nI1996 = NOT(n659gat)\r\nn658gat = NOT(I1996)\r\nI1999 = NOT(n658gat)\r\nn784gat = NOT(I1999)\r\nn662gat = NOT(n1725gat)\r\nI2014 = NOT(n553gat)\r\nn552gat = NOT(I2014)\r\nI2017 = NOT(n552gat)\r\nn785gat = NOT(I2017)\r\nn661gat = NOT(n1725gat)\r\nI2032 = NOT(n777gat)\r\nn776gat = NOT(I2032)\r\nI2035 = NOT(n776gat)\r\nn786gat = NOT(I2035)\r\nn551gat = NOT(n553gat)\r\nI2040 = NOT(n551gat)\r\nn787gat = NOT(I2040)\r\nn775gat = NOT(n777gat)\r\nI2044 = NOT(n775gat)\r\nn788gat = NOT(I2044)\r\nn657gat = NOT(n659gat)\r\nI2049 = NOT(n657gat)\r\nn789gat = NOT(I2049)\r\nn35gat = NOT(n779gat)\r\nI2056 = NOT(n35gat)\r\nn125gat = NOT(I2056)\r\nn558gat = NOT(n1725gat)\r\nn559gat = NOT(n561gat)\r\nn371gat = NOT(n1725gat)\r\nI2084 = NOT(n366gat)\r\nn365gat = NOT(I2084)\r\nI2088 = NOT(n561gat)\r\nn560gat = NOT(I2088)\r\nn364gat = NOT(n366gat)\r\nI2094 = NOT(n2876gat)\r\nn126gat = NOT(I2094)\r\nn663gat = NOT(n1725gat)\r\nI2109 = NOT(n322gat)\r\nn321gat = NOT(I2109)\r\nI2112 = NOT(n321gat)\r\nn226gat = NOT(I2112)\r\nn370gat = NOT(n1725gat)\r\nI2127 = NOT(n318gat)\r\nn317gat = NOT(I2127)\r\nI2130 = NOT(n317gat)\r\nn227gat = NOT(I2130)\r\nn369gat = NOT(n1725gat)\r\nI2145 = NOT(n314gat)\r\nn313gat = NOT(I2145)\r\nI2148 = NOT(n313gat)\r\nn228gat = NOT(I2148)\r\nn316gat = NOT(n318gat)\r\nI2153 = NOT(n316gat)\r\nn229gat = NOT(I2153)\r\nn312gat = NOT(n314gat)\r\nI2157 = NOT(n312gat)\r\nn230gat = NOT(I2157)\r\nn320gat = NOT(n322gat)\r\nI2162 = NOT(n320gat)\r\nn231gat = NOT(I2162)\r\nn34gat = NOT(n221gat)\r\nI2169 = NOT(n34gat)\r\nn127gat = NOT(I2169)\r\nn133gat = NOT(n2876gat)\r\nI2174 = NOT(n133gat)\r\nn128gat = NOT(I2174)\r\nI2177 = NOT(n221gat)\r\nn129gat = NOT(I2177)\r\nI2181 = NOT(n779gat)\r\nn130gat = NOT(I2181)\r\nn665gat = NOT(n667gat)\r\nn1601gat = NOT(n120gat)\r\nn2597gat = NOT(n2599gat)\r\nn2595gat = NOT(n2594gat)\r\nn2586gat = NOT(n2588gat)\r\nI2213 = NOT(n2342gat)\r\nn2573gat = NOT(I2213)\r\nn2638gat = NOT(n2640gat)\r\nI2225 = NOT(n2638gat)\r\nn2574gat = NOT(I2225)\r\nI2228 = NOT(n2561gat)\r\nn2575gat = NOT(I2228)\r\nI2232 = NOT(n2640gat)\r\nn2639gat = NOT(I2232)\r\nI2235 = NOT(n2639gat)\r\nn2576gat = NOT(I2235)\r\nI2238 = NOT(n2560gat)\r\nn2577gat = NOT(I2238)\r\nI2242 = NOT(n2341gat)\r\nn2578gat = NOT(I2242)\r\nI2248 = NOT(n2568gat)\r\nn2582gat = NOT(I2248)\r\nI2251 = NOT(n2207gat)\r\nn2206gat = NOT(I2251)\r\nI2254 = NOT(n2206gat)\r\nn2414gat = NOT(I2254)\r\nI2257 = NOT(n2398gat)\r\nn2415gat = NOT(I2257)\r\nI2260 = NOT(n2203gat)\r\nn2202gat = NOT(I2260)\r\nI2263 = NOT(n2202gat)\r\nn2416gat = NOT(I2263)\r\nn2397gat = NOT(n2399gat)\r\nI2268 = NOT(n2397gat)\r\nn2417gat = NOT(I2268)\r\nI2271 = NOT(n2201gat)\r\nn2418gat = NOT(I2271)\r\nI2275 = NOT(n2205gat)\r\nn2419gat = NOT(I2275)\r\nI2281 = NOT(n2409gat)\r\nn2585gat = NOT(I2281)\r\nn2656gat = NOT(n2658gat)\r\nn2493gat = NOT(n2495gat)\r\nn2388gat = NOT(n2390gat)\r\nI2316 = NOT(n2390gat)\r\nn2389gat = NOT(I2316)\r\nI2319 = NOT(n2495gat)\r\nn2494gat = NOT(I2319)\r\nI2324 = NOT(n3014gat)\r\nn2649gat = NOT(I2324)\r\nn2268gat = NOT(n2270gat)\r\nI2344 = NOT(n2339gat)\r\nn2338gat = NOT(I2344)\r\nn2337gat = NOT(n2339gat)\r\nI2349 = NOT(n2270gat)\r\nn2269gat = NOT(I2349)\r\nI2354 = NOT(n2880gat)\r\nn2652gat = NOT(I2354)\r\nn2500gat = NOT(n2502gat)\r\nn2620gat = NOT(n2622gat)\r\nn2612gat = NOT(n2620gat)\r\nI2372 = NOT(n2612gat)\r\nn2606gat = NOT(I2372)\r\nn2532gat = NOT(n2625gat)\r\nI2376 = NOT(n2532gat)\r\nn2607gat = NOT(I2376)\r\nn2540gat = NOT(n2488gat)\r\nI2380 = NOT(n2540gat)\r\nn2608gat = NOT(I2380)\r\nn2536gat = NOT(n2624gat)\r\nI2385 = NOT(n2536gat)\r\nn2609gat = NOT(I2385)\r\nn2487gat = NOT(n2489gat)\r\nI2389 = NOT(n2487gat)\r\nn2610gat = NOT(I2389)\r\nn2557gat = NOT(n2621gat)\r\nI2394 = NOT(n2557gat)\r\nn2611gat = NOT(I2394)\r\nI2400 = NOT(n2601gat)\r\nn2616gat = NOT(I2400)\r\nI2403 = NOT(n2629gat)\r\nn2550gat = NOT(I2403)\r\nI2414 = NOT(n2634gat)\r\nn2633gat = NOT(I2414)\r\nI2417 = NOT(n2633gat)\r\nn2551gat = NOT(I2417)\r\nI2420 = NOT(n2542gat)\r\nn2552gat = NOT(I2420)\r\nn2632gat = NOT(n2634gat)\r\nI2425 = NOT(n2632gat)\r\nn2553gat = NOT(I2425)\r\nI2428 = NOT(n2541gat)\r\nn2554gat = NOT(I2428)\r\nn2628gat = NOT(n2630gat)\r\nI2433 = NOT(n2628gat)\r\nn2555gat = NOT(I2433)\r\nI2439 = NOT(n2545gat)\r\nn2619gat = NOT(I2439)\r\nn2504gat = NOT(n2506gat)\r\nn2660gat = NOT(n2655gat)\r\nn1528gat = NOT(n2293gat)\r\nn1523gat = NOT(n2219gat)\r\nn1592gat = NOT(n1529gat)\r\nn2666gat = NOT(n1704gat)\r\nn2422gat = NOT(n3013gat)\r\nn2290gat = NOT(n2202gat)\r\nn2081gat = NOT(n2218gat)\r\nn2285gat = NOT(n2397gat)\r\nn2359gat = NOT(n2358gat)\r\nn1414gat = NOT(n1415gat)\r\nn566gat = NOT(n364gat)\r\nn1480gat = NOT(n2292gat)\r\nn1301gat = NOT(n1416gat)\r\nn1150gat = NOT(n312gat)\r\nn873gat = NOT(n316gat)\r\nn2011gat = NOT(n2306gat)\r\nn1478gat = NOT(n1481gat)\r\nn875gat = NOT(n559gat)\r\nn1410gat = NOT(n2357gat)\r\nn876gat = NOT(n1347gat)\r\nn1160gat = NOT(n1484gat)\r\nn1084gat = NOT(n657gat)\r\nn983gat = NOT(n320gat)\r\nn1482gat = NOT(n2363gat)\r\nn1157gat = NOT(n1483gat)\r\nn985gat = NOT(n775gat)\r\nn1530gat = NOT(n2364gat)\r\nn1307gat = NOT(n1308gat)\r\nn1085gat = NOT(n551gat)\r\nn1479gat = NOT(n2291gat)\r\nn1348gat = NOT(n1349gat)\r\nn2217gat = NOT(n2206gat)\r\nn1591gat = NOT(n2223gat)\r\nn1437gat = NOT(n1438gat)\r\nn1832gat = NOT(n1834gat)\r\nn1765gat = NOT(n1767gat)\r\nn1878gat = NOT(n1880gat)\r\nn1442gat = NOT(n1831gat)\r\nn1444gat = NOT(n1442gat)\r\nn1378gat = NOT(n2975gat)\r\nn1322gat = NOT(n2974gat)\r\nn1439gat = NOT(n1486gat)\r\nn1370gat = NOT(n1426gat)\r\nn1369gat = NOT(n2966gat)\r\nn1366gat = NOT(n1365gat)\r\nn1374gat = NOT(n2979gat)\r\nn2162gat = NOT(n2220gat)\r\nn1450gat = NOT(n1423gat)\r\nn1427gat = NOT(n1608gat)\r\nn1603gat = NOT(n1831gat)\r\nn2082gat = NOT(n2084gat)\r\nn1449gat = NOT(n1494gat)\r\nn1590gat = NOT(n1603gat)\r\nn1248gat = NOT(n2954gat)\r\nn1418gat = NOT(n1417gat)\r\nn1306gat = NOT(n2964gat)\r\nn1353gat = NOT(n1419gat)\r\nn1247gat = NOT(n2958gat)\r\nn1355gat = NOT(n1422gat)\r\nn1300gat = NOT(n2963gat)\r\nn1487gat = NOT(n1485gat)\r\nn1164gat = NOT(n2953gat)\r\nn1356gat = NOT(n1354gat)\r\nn1436gat = NOT(n1435gat)\r\nn1106gat = NOT(n2949gat)\r\nn1425gat = NOT(n1421gat)\r\nn1105gat = NOT(n2934gat)\r\nn1424gat = NOT(n1420gat)\r\nn1309gat = NOT(n2959gat)\r\nI2672 = NOT(n2143gat)\r\nn2142gat = NOT(I2672)\r\nn1788gat = NOT(n2142gat)\r\nI2684 = NOT(n2061gat)\r\nn2060gat = NOT(I2684)\r\nn1786gat = NOT(n2060gat)\r\nI2696 = NOT(n2139gat)\r\nn2138gat = NOT(I2696)\r\nn1839gat = NOT(n2138gat)\r\nn1897gat = NOT(n1899gat)\r\nn1884gat = NOT(n1897gat)\r\nn1848gat = NOT(n1850gat)\r\nn1783gat = NOT(n1848gat)\r\nn1548gat = NOT(I2721)\r\nn1719gat = NOT(n1548gat)\r\nn2137gat = NOT(n2139gat)\r\nn1633gat = NOT(n2137gat)\r\nn2059gat = NOT(n2061gat)\r\nn1785gat = NOT(n2059gat)\r\nI2731 = NOT(n1850gat)\r\nn1849gat = NOT(I2731)\r\nn1784gat = NOT(n1849gat)\r\nn1716gat = NOT(I2736)\r\nn1635gat = NOT(n1716gat)\r\nn2401gat = NOT(n2403gat)\r\nn1989gat = NOT(n2401gat)\r\nn2392gat = NOT(n2394gat)\r\nn1918gat = NOT(n2392gat)\r\nI2771 = NOT(n2440gat)\r\nn2439gat = NOT(I2771)\r\nn1986gat = NOT(n2439gat)\r\nn1866gat = NOT(n1865gat)\r\nI2785 = NOT(n2407gat)\r\nn2406gat = NOT(I2785)\r\nn2216gat = NOT(n2406gat)\r\nn2345gat = NOT(n2347gat)\r\nn1988gat = NOT(n2345gat)\r\nn1735gat = NOT(n1861gat)\r\nn1387gat = NOT(n1389gat)\r\nn1694gat = NOT(I2813)\r\nn1777gat = NOT(n1694gat)\r\nn1781gat = NOT(n1780gat)\r\nn2019gat = NOT(n2021gat)\r\nn1549gat = NOT(I2832)\r\nn1551gat = NOT(n1549gat)\r\nI2837 = NOT(n2347gat)\r\nn2346gat = NOT(I2837)\r\nn2152gat = NOT(n2346gat)\r\nn2405gat = NOT(n2407gat)\r\nn2351gat = NOT(n2405gat)\r\nI2843 = NOT(n2403gat)\r\nn2402gat = NOT(I2843)\r\nn2212gat = NOT(n2402gat)\r\nI2847 = NOT(n2394gat)\r\nn2393gat = NOT(I2847)\r\nn1991gat = NOT(n2393gat)\r\nn1665gat = NOT(n1666gat)\r\nn1517gat = NOT(n1578gat)\r\nn1392gat = NOT(n1394gat)\r\nI2873 = NOT(n1496gat)\r\nn1495gat = NOT(I2873)\r\nn1685gat = NOT(n1604gat)\r\nI2885 = NOT(n2091gat)\r\nn2090gat = NOT(I2885)\r\nn1550gat = NOT(I2890)\r\nn1552gat = NOT(n1550gat)\r\nn1330gat = NOT(n1332gat)\r\nn1738gat = NOT(n1740gat)\r\nI2915 = NOT(n1740gat)\r\nn1739gat = NOT(I2915)\r\nn1925gat = NOT(n1920gat)\r\nn1917gat = NOT(n1921gat)\r\nn2141gat = NOT(n2143gat)\r\nn1787gat = NOT(n2141gat)\r\nn1717gat = NOT(I2926)\r\nn1859gat = NOT(n1717gat)\r\nn1922gat = NOT(n1798gat)\r\nn1713gat = NOT(I2935)\r\nn1743gat = NOT(n1713gat)\r\nn1923gat = NOT(n1864gat)\r\nn1945gat = NOT(n1690gat)\r\nI2953 = NOT(n2179gat)\r\nn2178gat = NOT(I2953)\r\nn1661gat = NOT(n1660gat)\r\nn1572gat = NOT(n1576gat)\r\nn2438gat = NOT(n2440gat)\r\nn2283gat = NOT(n2438gat)\r\nn1520gat = NOT(n1582gat)\r\nn1580gat = NOT(n1577gat)\r\nn1990gat = NOT(n2988gat)\r\nI2978 = NOT(n2190gat)\r\nn2189gat = NOT(I2978)\r\nI2989 = NOT(n2135gat)\r\nn2134gat = NOT(I2989)\r\nI3000 = NOT(n2262gat)\r\nn2261gat = NOT(I3000)\r\nn2128gat = NOT(n2129gat)\r\nn1836gat = NOT(n1695gat)\r\nI3016 = NOT(n2182gat)\r\nn2181gat = NOT(I3016)\r\nn1431gat = NOT(n1433gat)\r\nn1314gat = NOT(n1316gat)\r\nn1361gat = NOT(n1363gat)\r\nI3056 = NOT(n1312gat)\r\nn1311gat = NOT(I3056)\r\nn1707gat = NOT(n1626gat)\r\nn1773gat = NOT(n1775gat)\r\nn1659gat = NOT(n2987gat)\r\nn1515gat = NOT(n1521gat)\r\nn1736gat = NOT(n1737gat)\r\nn1658gat = NOT(n2216gat)\r\nn1724gat = NOT(n1732gat)\r\nn1662gat = NOT(n1663gat)\r\nn1656gat = NOT(n1655gat)\r\nn1670gat = NOT(n1667gat)\r\nn1569gat = NOT(n1570gat)\r\nn1568gat = NOT(n1575gat)\r\nn1727gat = NOT(n1728gat)\r\nn1797gat = NOT(n1801gat)\r\nn1730gat = NOT(n1731gat)\r\nn1561gat = NOT(n1571gat)\r\nn1668gat = NOT(n1734gat)\r\nn1742gat = NOT(n2216gat)\r\nn1671gat = NOT(n1669gat)\r\nn1652gat = NOT(n1657gat)\r\nn1648gat = NOT(n1729gat)\r\nn1790gat = NOT(n1726gat)\r\nn2004gat = NOT(n1929gat)\r\nn1869gat = NOT(n1871gat)\r\nI3143 = NOT(n2592gat)\r\nn2591gat = NOT(I3143)\r\nn1584gat = NOT(n2989gat)\r\nn1714gat = NOT(I3149)\r\nn1718gat = NOT(n1714gat)\r\nI3163 = NOT(n1508gat)\r\nn1507gat = NOT(I3163)\r\nn1396gat = NOT(n1401gat)\r\nI3168 = NOT(n1394gat)\r\nn1393gat = NOT(I3168)\r\nn1409gat = NOT(n1476gat)\r\nI3174 = NOT(n1899gat)\r\nn1898gat = NOT(I3174)\r\nn1838gat = NOT(n1898gat)\r\nn1712gat = NOT(I3179)\r\nI3191 = NOT(n1678gat)\r\nn1677gat = NOT(I3191)\r\nn2000gat = NOT(n1412gat)\r\nn2001gat = NOT(n1412gat)\r\nn1999gat = NOT(n2001gat)\r\nn2307gat = NOT(n2309gat)\r\nI3211 = NOT(n2663gat)\r\nn3018gat = NOT(I3211)\r\nn2448gat = NOT(n2450gat)\r\nn2661gat = NOT(n2662gat)\r\nn2444gat = NOT(n2446gat)\r\nI3235 = NOT(n2238gat)\r\nn3019gat = NOT(I3235)\r\nn1310gat = NOT(n1312gat)\r\nn199gat = NOT(n87gat)\r\nn195gat = NOT(n184gat)\r\nn827gat = NOT(n204gat)\r\nn2093gat = NOT(n2095gat)\r\nn2174gat = NOT(n2176gat)\r\nI3273 = NOT(n2169gat)\r\nn2168gat = NOT(I3273)\r\nn2452gat = NOT(n2454gat)\r\nn1691gat = NOT(n2452gat)\r\nI3287 = NOT(n1691gat)\r\nn3020gat = NOT(I3287)\r\nI3290 = NOT(n1691gat)\r\nn3021gat = NOT(I3290)\r\nI3293 = NOT(n1691gat)\r\nn3022gat = NOT(I3293)\r\nn1699gat = NOT(n2452gat)\r\nI3297 = NOT(n1699gat)\r\nn3023gat = NOT(I3297)\r\nI3300 = NOT(n1699gat)\r\nn3024gat = NOT(I3300)\r\nI3303 = NOT(n1691gat)\r\nn3025gat = NOT(I3303)\r\nI3306 = NOT(n1699gat)\r\nn3026gat = NOT(I3306)\r\nI3309 = NOT(n1699gat)\r\nn3027gat = NOT(I3309)\r\nI3312 = NOT(n1699gat)\r\nn3028gat = NOT(I3312)\r\nI3315 = NOT(n1869gat)\r\nn3029gat = NOT(I3315)\r\nI3318 = NOT(n1869gat)\r\nn3030gat = NOT(I3318)\r\nn2260gat = NOT(n2262gat)\r\nn2257gat = NOT(n2189gat)\r\nn2188gat = NOT(n2190gat)\r\nn2187gat = NOT(n3004gat)\r\nI3336 = NOT(n2040gat)\r\nn2039gat = NOT(I3336)\r\nI3339 = NOT(n1775gat)\r\nn1774gat = NOT(I3339)\r\nI3342 = NOT(n1316gat)\r\nn1315gat = NOT(I3342)\r\nn2042gat = NOT(n2044gat)\r\nn2035gat = NOT(n2037gat)\r\nn2023gat = NOT(n2025gat)\r\nn2097gat = NOT(n2099gat)\r\nn1855gat = NOT(n2014gat)\r\nI3387 = NOT(n2194gat)\r\nn3031gat = NOT(I3387)\r\nI3390 = NOT(n2261gat)\r\nn3032gat = NOT(I3390)\r\nn2256gat = NOT(n3032gat)\r\nI3394 = NOT(n2260gat)\r\nn3033gat = NOT(I3394)\r\nn2251gat = NOT(n3033gat)\r\nn2184gat = NOT(n3003gat)\r\nI3401 = NOT(n2192gat)\r\nn3034gat = NOT(I3401)\r\nn2133gat = NOT(n2135gat)\r\nn2131gat = NOT(n2185gat)\r\nn2049gat = NOT(n3001gat)\r\nI3412 = NOT(n2057gat)\r\nn3035gat = NOT(I3412)\r\nn2253gat = NOT(n2189gat)\r\nn2252gat = NOT(n2260gat)\r\nn2248gat = NOT(n3006gat)\r\nn2264gat = NOT(n2266gat)\r\nI3429 = NOT(n2266gat)\r\nn2265gat = NOT(I3429)\r\nn2492gat = NOT(n2329gat)\r\nI3436 = NOT(n2492gat)\r\nn3036gat = NOT(I3436)\r\nn1709gat = NOT(n1849gat)\r\nn1845gat = NOT(n2141gat)\r\nn1891gat = NOT(n2059gat)\r\nn1963gat = NOT(n2137gat)\r\nn1886gat = NOT(n1897gat)\r\nn1968gat = NOT(n1958gat)\r\nn1629gat = NOT(n1895gat)\r\nn1631gat = NOT(n1848gat)\r\nn1711gat = NOT(n2990gat)\r\nn2200gat = NOT(n2078gat)\r\nn2437gat = NOT(n2195gat)\r\nI3457 = NOT(n2556gat)\r\nn3037gat = NOT(I3457)\r\nn1956gat = NOT(n1898gat)\r\nI3461 = NOT(n1956gat)\r\nn3038gat = NOT(I3461)\r\nn1954gat = NOT(n3038gat)\r\nI3465 = NOT(n1886gat)\r\nn3039gat = NOT(I3465)\r\nn1888gat = NOT(n3039gat)\r\nn2048gat = NOT(n2994gat)\r\nI3472 = NOT(n2539gat)\r\nn3040gat = NOT(I3472)\r\nn1969gat = NOT(n2142gat)\r\nn1893gat = NOT(n2060gat)\r\nn1892gat = NOT(n2993gat)\r\nI3483 = NOT(n2436gat)\r\nn3041gat = NOT(I3483)\r\nn2056gat = NOT(n2998gat)\r\nI3491 = NOT(n2387gat)\r\nn3042gat = NOT(I3491)\r\nI3494 = NOT(n1963gat)\r\nn3043gat = NOT(I3494)\r\nn1960gat = NOT(n3043gat)\r\nn1887gat = NOT(n2138gat)\r\nn1961gat = NOT(n2996gat)\r\nI3504 = NOT(n2330gat)\r\nn3044gat = NOT(I3504)\r\nn2199gat = NOT(n2147gat)\r\nI3509 = NOT(n2438gat)\r\nn3045gat = NOT(I3509)\r\nn2332gat = NOT(n3045gat)\r\nI3513 = NOT(n2439gat)\r\nn3046gat = NOT(I3513)\r\nn2259gat = NOT(n3046gat)\r\nn2328gat = NOT(n3008gat)\r\nI3520 = NOT(n2498gat)\r\nn3047gat = NOT(I3520)\r\nn2151gat = NOT(n2193gat)\r\nn2209gat = NOT(n3005gat)\r\nI3530 = NOT(n2396gat)\r\nn3048gat = NOT(I3530)\r\nn2052gat = NOT(n2393gat)\r\nn2058gat = NOT(n2997gat)\r\nI3539 = NOT(n2198gat)\r\nn3049gat = NOT(I3539)\r\nn2349gat = NOT(n2215gat)\r\nn2281gat = NOT(n3009gat)\r\nI3549 = NOT(n2197gat)\r\nn3050gat = NOT(I3549)\r\nn2146gat = NOT(n3002gat)\r\nI3558 = NOT(n2196gat)\r\nn3051gat = NOT(I3558)\r\nn2031gat = NOT(n2033gat)\r\nn2108gat = NOT(n2110gat)\r\nI3587 = NOT(n2125gat)\r\nn2124gat = NOT(I3587)\r\nn2123gat = NOT(n2125gat)\r\nn2119gat = NOT(n2121gat)\r\nn2115gat = NOT(n2117gat)\r\nI3610 = NOT(n1882gat)\r\nn3052gat = NOT(I3610)\r\nI3621 = NOT(n1975gat)\r\nn1974gat = NOT(I3621)\r\nn1955gat = NOT(n1956gat)\r\nn1970gat = NOT(n1896gat)\r\nn1973gat = NOT(n1975gat)\r\nn2558gat = NOT(n2559gat)\r\nI3635 = NOT(n2558gat)\r\nn3053gat = NOT(I3635)\r\nI3646 = NOT(n2644gat)\r\nn2643gat = NOT(I3646)\r\nn2333gat = NOT(n2438gat)\r\nn2564gat = NOT(n2352gat)\r\nn2642gat = NOT(n2644gat)\r\nn2636gat = NOT(n2637gat)\r\nI3660 = NOT(n2636gat)\r\nn3054gat = NOT(I3660)\r\nn88gat = NOT(n84gat)\r\nn375gat = NOT(n110gat)\r\nI3677 = NOT(n156gat)\r\nn155gat = NOT(I3677)\r\nn253gat = NOT(n1702gat)\r\nn150gat = NOT(n152gat)\r\nI3691 = NOT(n152gat)\r\nn151gat = NOT(I3691)\r\nn243gat = NOT(n1702gat)\r\nn233gat = NOT(n243gat)\r\nn154gat = NOT(n156gat)\r\nn800gat = NOT(n2874gat)\r\nI3703 = NOT(n2917gat)\r\nn3055gat = NOT(I3703)\r\nn235gat = NOT(n2878gat)\r\nI3713 = NOT(n2892gat)\r\nn3056gat = NOT(I3713)\r\nn372gat = NOT(n212gat)\r\nn329gat = NOT(n331gat)\r\nI3736 = NOT(n388gat)\r\nn387gat = NOT(I3736)\r\nn334gat = NOT(n1700gat)\r\nn386gat = NOT(n388gat)\r\nI3742 = NOT(n331gat)\r\nn330gat = NOT(I3742)\r\nn1430gat = NOT(n1700gat)\r\nn1490gat = NOT(n1430gat)\r\nn452gat = NOT(n2885gat)\r\nI3754 = NOT(n2900gat)\r\nn3057gat = NOT(I3754)\r\nn333gat = NOT(n2883gat)\r\nI3765 = NOT(n2929gat)\r\nn3058gat = NOT(I3765)\r\nI3777 = NOT(n463gat)\r\nn462gat = NOT(I3777)\r\nn325gat = NOT(n327gat)\r\nn457gat = NOT(n2884gat)\r\nn461gat = NOT(n463gat)\r\nn458gat = NOT(n2902gat)\r\nI3801 = NOT(n2925gat)\r\nn3059gat = NOT(I3801)\r\nn144gat = NOT(n247gat)\r\nI3808 = NOT(n327gat)\r\nn326gat = NOT(I3808)\r\nn878gat = NOT(n2879gat)\r\nI3817 = NOT(n2916gat)\r\nn3060gat = NOT(I3817)\r\nn382gat = NOT(n384gat)\r\nI3831 = NOT(n384gat)\r\nn383gat = NOT(I3831)\r\nn134gat = NOT(n2875gat)\r\nI3841 = NOT(n2899gat)\r\nn3061gat = NOT(I3841)\r\nn254gat = NOT(n256gat)\r\nn252gat = NOT(n2877gat)\r\nn468gat = NOT(n470gat)\r\nI3867 = NOT(n470gat)\r\nn469gat = NOT(I3867)\r\nn381gat = NOT(n2893gat)\r\nI3876 = NOT(n2926gat)\r\nn3062gat = NOT(I3876)\r\nn241gat = NOT(n140gat)\r\nI3882 = NOT(n256gat)\r\nn255gat = NOT(I3882)\r\nn802gat = NOT(n2882gat)\r\nI3891 = NOT(n2924gat)\r\nn3063gat = NOT(I3891)\r\nn146gat = NOT(n148gat)\r\nI3904 = NOT(n148gat)\r\nn147gat = NOT(I3904)\r\nn380gat = NOT(n2881gat)\r\nI3914 = NOT(n2923gat)\r\nn3064gat = NOT(I3914)\r\nn69gat = NOT(n68gat)\r\nn1885gat = NOT(n2048gat)\r\nI3923 = NOT(n2710gat)\r\nn2707gat = NOT(I3923)\r\nn16gat = NOT(n564gat)\r\nn295gat = NOT(n357gat)\r\nn11gat = NOT(n12gat)\r\nn1889gat = NOT(n1961gat)\r\nI3935 = NOT(n2704gat)\r\nn2700gat = NOT(I3935)\r\nn2051gat = NOT(n2056gat)\r\nI3941 = NOT(n2684gat)\r\nn2680gat = NOT(I3941)\r\nn1350gat = NOT(n1831gat)\r\nI3945 = NOT(n1350gat)\r\nn2696gat = NOT(I3945)\r\nI3948 = NOT(n2696gat)\r\nn2692gat = NOT(I3948)\r\nI3951 = NOT(n2448gat)\r\nn2683gat = NOT(I3951)\r\nI3954 = NOT(n2683gat)\r\nn2679gat = NOT(I3954)\r\nI3957 = NOT(n2450gat)\r\nn2449gat = NOT(I3957)\r\nn1754gat = NOT(n2449gat)\r\nI3962 = NOT(n2830gat)\r\nn2827gat = NOT(I3962)\r\nn2590gat = NOT(n2592gat)\r\nn2456gat = NOT(n2458gat)\r\nn2512gat = NOT(n2514gat)\r\nn1544gat = NOT(n1625gat)\r\nn1769gat = NOT(n1771gat)\r\nn1683gat = NOT(n1756gat)\r\nn2167gat = NOT(n2169gat)\r\nn2013gat = NOT(I4000)\r\nn1791gat = NOT(n2013gat)\r\nn2691gat = NOT(n2695gat)\r\nn1518gat = NOT(n1694gat)\r\nn2699gat = NOT(n2703gat)\r\nn2159gat = NOT(n1412gat)\r\nn2478gat = NOT(n2579gat)\r\nI4014 = NOT(n2744gat)\r\nn2740gat = NOT(I4014)\r\nn2158gat = NOT(n1412gat)\r\nn2186gat = NOT(n2613gat)\r\nI4020 = NOT(n2800gat)\r\nn2797gat = NOT(I4020)\r\nn2288gat = NOT(I4024)\r\nn1513gat = NOT(n2288gat)\r\nn2537gat = NOT(n2538gat)\r\nn2442gat = NOT(n2483gat)\r\nn1334gat = NOT(n1336gat)\r\nI4055 = NOT(n1748gat)\r\nn1747gat = NOT(I4055)\r\nI4067 = NOT(n1675gat)\r\nn1674gat = NOT(I4067)\r\nn1403gat = NOT(n1402gat)\r\nI4081 = NOT(n1807gat)\r\nn1806gat = NOT(I4081)\r\nn1634gat = NOT(n1712gat)\r\nn1338gat = NOT(n1340gat)\r\nI4105 = NOT(n1456gat)\r\nn1455gat = NOT(I4105)\r\nI4108 = NOT(n1340gat)\r\nn1339gat = NOT(I4108)\r\nn1505gat = NOT(n2980gat)\r\nI4117 = NOT(n1505gat)\r\nn2758gat = NOT(I4117)\r\nn2755gat = NOT(n2758gat)\r\nn1546gat = NOT(n2980gat)\r\nI4122 = NOT(n1546gat)\r\nn2752gat = NOT(I4122)\r\nn2748gat = NOT(n2752gat)\r\nn2012gat = NOT(n2016gat)\r\nn2002gat = NOT(n2008gat)\r\nI4129 = NOT(n3097gat)\r\nn2858gat = NOT(I4129)\r\nn2857gat = NOT(n2858gat)\r\nI4135 = NOT(n3098gat)\r\nn2766gat = NOT(I4135)\r\nI4138 = NOT(n2766gat)\r\nn2765gat = NOT(I4138)\r\nn1684gat = NOT(n1759gat)\r\nn1632gat = NOT(I4145)\r\nI4157 = NOT(n1525gat)\r\nn1524gat = NOT(I4157)\r\nn1862gat = NOT(n1863gat)\r\nn1919gat = NOT(n1860gat)\r\nn1460gat = NOT(n1462gat)\r\nI4185 = NOT(n1596gat)\r\nn1595gat = NOT(I4185)\r\nn1454gat = NOT(n1469gat)\r\nn1468gat = NOT(n1519gat)\r\nI4194 = NOT(n1462gat)\r\nn1461gat = NOT(I4194)\r\nn1477gat = NOT(n2984gat)\r\nn1594gat = NOT(n1596gat)\r\nI4212 = NOT(n1588gat)\r\nn1587gat = NOT(I4212)\r\nn1681gat = NOT(I4217)\r\nI4222 = NOT(n1761gat)\r\nn2751gat = NOT(I4222)\r\nn2747gat = NOT(n2751gat)\r\nI4227 = NOT(n1760gat)\r\nn2743gat = NOT(I4227)\r\nn2739gat = NOT(n2743gat)\r\nn1978gat = NOT(n2286gat)\r\nI4233 = NOT(n1721gat)\r\nn2808gat = NOT(I4233)\r\nI4236 = NOT(n2808gat)\r\nn2804gat = NOT(I4236)\r\nn517gat = NOT(n518gat)\r\nn417gat = NOT(n418gat)\r\nn413gat = NOT(n411gat)\r\nn412gat = NOT(n522gat)\r\nn406gat = NOT(n516gat)\r\nn407gat = NOT(n355gat)\r\nn290gat = NOT(n525gat)\r\nn527gat = NOT(n356gat)\r\nn416gat = NOT(n415gat)\r\nn528gat = NOT(n521gat)\r\nn358gat = NOT(n532gat)\r\nn639gat = NOT(n523gat)\r\nn1111gat = NOT(n635gat)\r\nn524gat = NOT(n414gat)\r\nn1112gat = NOT(n630gat)\r\nn741gat = NOT(n629gat)\r\nn633gat = NOT(n634gat)\r\nn926gat = NOT(n632gat)\r\nn670gat = NOT(n636gat)\r\nn1123gat = NOT(n632gat)\r\nn1007gat = NOT(n635gat)\r\nn1006gat = NOT(n630gat)\r\nI4309 = NOT(n2941gat)\r\nn2814gat = NOT(I4309)\r\nI4312 = NOT(n2814gat)\r\nn2811gat = NOT(I4312)\r\nn1002gat = NOT(n2946gat)\r\nI4329 = NOT(n2950gat)\r\nn2813gat = NOT(I4329)\r\nI4332 = NOT(n2813gat)\r\nn2810gat = NOT(I4332)\r\nn888gat = NOT(n2933gat)\r\nI4349 = NOT(n2935gat)\r\nn2818gat = NOT(I4349)\r\nI4352 = NOT(n2818gat)\r\nn2816gat = NOT(I4352)\r\nn898gat = NOT(n2940gat)\r\nI4369 = NOT(n2937gat)\r\nn2817gat = NOT(I4369)\r\nI4372 = NOT(n2817gat)\r\nn2815gat = NOT(I4372)\r\nn1179gat = NOT(n2947gat)\r\nI4389 = NOT(n2956gat)\r\nn2824gat = NOT(I4389)\r\nI4392 = NOT(n2824gat)\r\nn2821gat = NOT(I4392)\r\nn897gat = NOT(n2939gat)\r\nI4409 = NOT(n2938gat)\r\nn2823gat = NOT(I4409)\r\nI4412 = NOT(n2823gat)\r\nn2820gat = NOT(I4412)\r\nn894gat = NOT(n2932gat)\r\nI4429 = NOT(n2936gat)\r\nn2829gat = NOT(I4429)\r\nI4432 = NOT(n2829gat)\r\nn2826gat = NOT(I4432)\r\nn1180gat = NOT(n2948gat)\r\nI4449 = NOT(n2955gat)\r\nn2828gat = NOT(I4449)\r\nI4452 = NOT(n2828gat)\r\nn2825gat = NOT(I4452)\r\nn671gat = NOT(n673gat)\r\nn628gat = NOT(n631gat)\r\nn976gat = NOT(n628gat)\r\nI4475 = NOT(n2951gat)\r\nn2807gat = NOT(I4475)\r\nI4478 = NOT(n2807gat)\r\nn2803gat = NOT(I4478)\r\nn2127gat = NOT(n2389gat)\r\nI4482 = NOT(n2127gat)\r\nn2682gat = NOT(I4482)\r\nI4485 = NOT(n2682gat)\r\nn2678gat = NOT(I4485)\r\nn2046gat = NOT(n2269gat)\r\nI4489 = NOT(n2046gat)\r\nn2681gat = NOT(I4489)\r\nI4492 = NOT(n2681gat)\r\nn2677gat = NOT(I4492)\r\nn1708gat = NOT(n2338gat)\r\nI4496 = NOT(n1708gat)\r\nn2688gat = NOT(I4496)\r\nI4499 = NOT(n2688gat)\r\nn2686gat = NOT(I4499)\r\nn455gat = NOT(n291gat)\r\nn2237gat = NOT(n2646gat)\r\nI4506 = NOT(n2764gat)\r\nn2763gat = NOT(I4506)\r\nn1782gat = NOT(n2971gat)\r\nI4512 = NOT(n2762gat)\r\nn2760gat = NOT(I4512)\r\nn2325gat = NOT(n3010gat)\r\nI4518 = NOT(n2761gat)\r\nn2759gat = NOT(I4518)\r\nn2245gat = NOT(n504gat)\r\nI4524 = NOT(n2757gat)\r\nn2754gat = NOT(I4524)\r\nn2244gat = NOT(n567gat)\r\nI4530 = NOT(n2756gat)\r\nn2753gat = NOT(I4530)\r\nn2243gat = NOT(n55gat)\r\nI4536 = NOT(n2750gat)\r\nn2746gat = NOT(I4536)\r\nn2246gat = NOT(n933gat)\r\nI4542 = NOT(n2749gat)\r\nn2745gat = NOT(I4542)\r\nn2384gat = NOT(n43gat)\r\nI4548 = NOT(n2742gat)\r\nn2738gat = NOT(I4548)\r\nn2385gat = NOT(n748gat)\r\nI4554 = NOT(n2741gat)\r\nn2737gat = NOT(I4554)\r\nn1286gat = NOT(n1269gat)\r\nI4558 = NOT(n1286gat)\r\nn2687gat = NOT(I4558)\r\nn2685gat = NOT(n2687gat)\r\nn1328gat = NOT(n1224gat)\r\nn1381gat = NOT(n1328gat)\r\nn1384gat = NOT(n2184gat)\r\nI4566 = NOT(n2694gat)\r\nn2690gat = NOT(I4566)\r\nn1382gat = NOT(n1280gat)\r\nn1451gat = NOT(n1382gat)\r\nn1453gat = NOT(n2187gat)\r\nI4573 = NOT(n2693gat)\r\nn2689gat = NOT(I4573)\r\nn927gat = NOT(n1133gat)\r\nn925gat = NOT(n927gat)\r\nn1452gat = NOT(n2049gat)\r\nI4580 = NOT(n2702gat)\r\nn2698gat = NOT(I4580)\r\nn923gat = NOT(n1043gat)\r\nn921gat = NOT(n923gat)\r\nn1890gat = NOT(n2328gat)\r\nI4587 = NOT(n2701gat)\r\nn2697gat = NOT(I4587)\r\nn850gat = NOT(n929gat)\r\nn739gat = NOT(n850gat)\r\nn1841gat = NOT(n2058gat)\r\nI4594 = NOT(n2709gat)\r\nn2706gat = NOT(I4594)\r\nn922gat = NOT(n1119gat)\r\nn848gat = NOT(n922gat)\r\nn2047gat = NOT(n2209gat)\r\nI4601 = NOT(n2708gat)\r\nn2705gat = NOT(I4601)\r\nn924gat = NOT(n1070gat)\r\nn849gat = NOT(n924gat)\r\nn2050gat = NOT(n2146gat)\r\nI4608 = NOT(n2799gat)\r\nn2796gat = NOT(I4608)\r\nn1118gat = NOT(n1033gat)\r\nn1032gat = NOT(n1118gat)\r\nn2054gat = NOT(n2281gat)\r\nI4615 = NOT(n2798gat)\r\nn2795gat = NOT(I4615)\r\nI4620 = NOT(n1745gat)\r\nn2806gat = NOT(I4620)\r\nI4623 = NOT(n2806gat)\r\nn2802gat = NOT(I4623)\r\nI4626 = NOT(n1871gat)\r\nn1870gat = NOT(I4626)\r\nn1086gat = NOT(n1870gat)\r\nI4630 = NOT(n1086gat)\r\nn2805gat = NOT(I4630)\r\nI4633 = NOT(n2805gat)\r\nn2801gat = NOT(I4633)\r\nn67gat = NOT(n85gat)\r\nn71gat = NOT(n180gat)\r\nn1840gat = NOT(n1892gat)\r\nI4642 = NOT(n2812gat)\r\nn2809gat = NOT(I4642)\r\nn76gat = NOT(n82gat)\r\nn14gat = NOT(n186gat)\r\nn1842gat = NOT(n1711gat)\r\nI4651 = NOT(n2822gat)\r\nn2819gat = NOT(I4651)\r\nI4654 = NOT(n2819gat)\r\nn3104gat = NOT(I4654)\r\nI4657 = NOT(n2809gat)\r\nn3105gat = NOT(I4657)\r\nI4660 = NOT(n2801gat)\r\nn3106gat = NOT(I4660)\r\nI4663 = NOT(n2802gat)\r\nn3107gat = NOT(I4663)\r\nI4666 = NOT(n2795gat)\r\nn3108gat = NOT(I4666)\r\nI4669 = NOT(n2796gat)\r\nn3109gat = NOT(I4669)\r\nI4672 = NOT(n2705gat)\r\nn3110gat = NOT(I4672)\r\nI4675 = NOT(n2706gat)\r\nn3111gat = NOT(I4675)\r\nI4678 = NOT(n2697gat)\r\nn3112gat = NOT(I4678)\r\nI4681 = NOT(n2698gat)\r\nn3113gat = NOT(I4681)\r\nI4684 = NOT(n2689gat)\r\nn3114gat = NOT(I4684)\r\nI4687 = NOT(n2690gat)\r\nn3115gat = NOT(I4687)\r\nI4690 = NOT(n2685gat)\r\nn3116gat = NOT(I4690)\r\nI4693 = NOT(n2737gat)\r\nn3117gat = NOT(I4693)\r\nI4696 = NOT(n2738gat)\r\nn3118gat = NOT(I4696)\r\nI4699 = NOT(n2745gat)\r\nn3119gat = NOT(I4699)\r\nI4702 = NOT(n2746gat)\r\nn3120gat = NOT(I4702)\r\nI4705 = NOT(n2753gat)\r\nn3121gat = NOT(I4705)\r\nI4708 = NOT(n2754gat)\r\nn3122gat = NOT(I4708)\r\nI4711 = NOT(n2759gat)\r\nn3123gat = NOT(I4711)\r\nI4714 = NOT(n2760gat)\r\nn3124gat = NOT(I4714)\r\nI4717 = NOT(n2763gat)\r\nn3125gat = NOT(I4717)\r\nI4720 = NOT(n2686gat)\r\nn3126gat = NOT(I4720)\r\nI4723 = NOT(n2677gat)\r\nn3127gat = NOT(I4723)\r\nI4726 = NOT(n2678gat)\r\nn3128gat = NOT(I4726)\r\nI4729 = NOT(n2803gat)\r\nn3129gat = NOT(I4729)\r\nI4732 = NOT(n2825gat)\r\nn3130gat = NOT(I4732)\r\nI4735 = NOT(n2826gat)\r\nn3131gat = NOT(I4735)\r\nI4738 = NOT(n2820gat)\r\nn3132gat = NOT(I4738)\r\nI4741 = NOT(n2821gat)\r\nn3133gat = NOT(I4741)\r\nI4744 = NOT(n2815gat)\r\nn3134gat = NOT(I4744)\r\nI4747 = NOT(n2816gat)\r\nn3135gat = NOT(I4747)\r\nI4750 = NOT(n2810gat)\r\nn3136gat = NOT(I4750)\r\nI4753 = NOT(n2811gat)\r\nn3137gat = NOT(I4753)\r\nI4756 = NOT(n2804gat)\r\nn3138gat = NOT(I4756)\r\nI4759 = NOT(n2739gat)\r\nn3139gat = NOT(I4759)\r\nI4762 = NOT(n2747gat)\r\nn3140gat = NOT(I4762)\r\nI4765 = NOT(n2748gat)\r\nn3141gat = NOT(I4765)\r\nI4768 = NOT(n2755gat)\r\nn3142gat = NOT(I4768)\r\nI4771 = NOT(n2797gat)\r\nn3143gat = NOT(I4771)\r\nI4774 = NOT(n2740gat)\r\nn3144gat = NOT(I4774)\r\nI4777 = NOT(n2699gat)\r\nn3145gat = NOT(I4777)\r\nI4780 = NOT(n2691gat)\r\nn3146gat = NOT(I4780)\r\nI4783 = NOT(n2827gat)\r\nn3147gat = NOT(I4783)\r\nI4786 = NOT(n2679gat)\r\nn3148gat = NOT(I4786)\r\nI4789 = NOT(n2692gat)\r\nn3149gat = NOT(I4789)\r\nI4792 = NOT(n2680gat)\r\nn3150gat = NOT(I4792)\r\nI4795 = NOT(n2700gat)\r\nn3151gat = NOT(I4795)\r\nI4798 = NOT(n2707gat)\r\nn3152gat = NOT(I4798)\r\nn2897gat = OR(n648gat, n442gat)\r\nn1213gat = OR(n1214gat, n1215gat, n1216gat, n1217gat)\r\nn2906gat = OR(n745gat, n638gat)\r\nn2889gat = OR(n423gat, n362gat)\r\nn748gat = OR(n749gat, n750gat, n751gat, n752gat)\r\nn258gat = OR(n259gat, n260gat, n261gat, n262gat)\r\nn1013gat = OR(n1014gat, n1015gat, n1016gat, n1017gat)\r\nn475gat = OR(n476gat, n477gat, n478gat, n479gat)\r\nn43gat = OR(n44gat, n45gat, n46gat, n47gat)\r\nn2786gat = OR(n3091gat, n3092gat)\r\nn167gat = OR(n168gat, n169gat, n170gat, n171gat)\r\nn906gat = OR(n907gat, n908gat, n909gat, n910gat)\r\nn343gat = OR(n344gat, n345gat, n346gat, n347gat)\r\nn55gat = OR(n56gat, n57gat, n58gat, n59gat)\r\nn2914gat = OR(n768gat, n655gat)\r\nn2928gat = OR(n963gat, n868gat)\r\nn2927gat = OR(n962gat, n959gat)\r\nn944gat = OR(n945gat, n946gat, n947gat, n948gat)\r\nn2896gat = OR(n647gat, n441gat)\r\nn2922gat = OR(n967gat, n792gat)\r\nn1228gat = OR(n1229gat, n1230gat, n1231gat, n1232gat)\r\nn2894gat = OR(n443gat, n439gat)\r\nn2921gat = OR(n966gat, n790gat)\r\nn2895gat = OR(n444gat, n440gat)\r\nn1050gat = OR(n1051gat, n1052gat, n1053gat, n1054gat)\r\nn933gat = OR(n934gat, n935gat, n936gat, n937gat)\r\nn709gat = OR(n710gat, n711gat, n712gat, n713gat)\r\nn728gat = OR(n729gat, n730gat, n731gat, n732gat)\r\nn493gat = OR(n494gat, n495gat, n496gat, n497gat)\r\nn504gat = OR(n505gat, n506gat, n507gat, n508gat)\r\nI1277 = OR(n2860gat, n2855gat, n2863gat)\r\nI1278 = OR(n740gat, n3030gat, I1277)\r\nn2913gat = OR(n767gat, n653gat)\r\nn2920gat = OR(n867gat, n771gat)\r\nn2905gat = OR(n964gat, n961gat)\r\nn803gat = OR(n804gat, n805gat, n806gat, n807gat)\r\nn586gat = OR(n587gat, n588gat, n589gat, n590gat)\r\nn2898gat = OR(n447gat, n445gat)\r\nn686gat = OR(n687gat, n688gat, n689gat, n690gat)\r\nn567gat = OR(n568gat, n569gat, n570gat, n571gat)\r\nI1515 = OR(n2474gat, n2524gat, n2831gat)\r\nI1516 = OR(n2466gat, n2462gat, I1515)\r\nI1584 = OR(n2353gat, n2284gat, n2354gat)\r\nI1585 = OR(n2356gat, n2214gat, I1584)\r\nn2989gat = OR(n1693gat, n1692gat)\r\nI1723 = OR(n2354gat, n2353gat, n2214gat)\r\nI1724 = OR(n2355gat, n2443gat, I1723)\r\nI1733 = OR(n2286gat, n2428gat, n2289gat)\r\nI1734 = OR(n1604gat, n2214gat, I1733)\r\nn2918gat = OR(n769gat, n759gat)\r\nn2952gat = OR(n1076gat, n1075gat)\r\nn2919gat = OR(n766gat, n760gat)\r\nn1184gat = OR(n1185gat, n1186gat, n1187gat, n1188gat)\r\nn2910gat = OR(n645gat, n644gat)\r\nn2907gat = OR(n646gat, n641gat)\r\nn2970gat = OR(n1383gat, n1327gat)\r\nn2911gat = OR(n761gat, n651gat)\r\nn2912gat = OR(n762gat, n652gat)\r\nn2909gat = OR(n765gat, n643gat)\r\nn1201gat = OR(n1202gat, n1203gat, n1204gat, n1205gat)\r\nn1269gat = OR(n1270gat, n1271gat, n1272gat, n1273gat)\r\nn2908gat = OR(n763gat, n642gat)\r\nn2971gat = OR(n1287gat, n1285gat)\r\nn2904gat = OR(n793gat, n664gat, n556gat)\r\nn2891gat = OR(n795gat, n656gat, n368gat)\r\nn2903gat = OR(n794gat, n773gat, n662gat)\r\nn2915gat = OR(n965gat, n960gat, n661gat)\r\nn779gat = OR(n780gat, n781gat, n782gat, n783gat)\r\nn2901gat = OR(n558gat, n555gat, n450gat)\r\nn2890gat = OR(n654gat, n557gat, n371gat)\r\nn2876gat = OR(n874gat, n132gat)\r\nn2888gat = OR(n663gat, n649gat, n449gat)\r\nn2887gat = OR(n791gat, n650gat, n370gat)\r\nn2886gat = OR(n774gat, n764gat, n369gat)\r\nn221gat = OR(n222gat, n223gat, n224gat, n225gat)\r\nn120gat = OR(n121gat, n122gat, n123gat, n124gat)\r\nn3010gat = OR(n2460gat, n2423gat)\r\nn3016gat = OR(n2596gat, n2595gat)\r\nn2568gat = OR(n2569gat, n2570gat, n2571gat, n2572gat)\r\nn2409gat = OR(n2410gat, n2411gat, n2412gat, n2413gat)\r\nn2579gat = OR(n2580gat, n2581gat)\r\nn3014gat = OR(n2567gat, n2499gat)\r\nn2880gat = OR(n299gat, n207gat)\r\nn2646gat = OR(n2647gat, n2648gat)\r\nn2601gat = OR(n2602gat, n2603gat, n2604gat, n2605gat)\r\nn2545gat = OR(n2546gat, n2547gat, n2548gat, n2549gat)\r\nn2613gat = OR(n2614gat, n2615gat)\r\nn3013gat = OR(n2461gat, n2421gat)\r\nn2930gat = OR(n1153gat, n1151gat, n982gat, n877gat)\r\nn2957gat = OR(n1159gat, n1158gat, n1156gat, n1155gat)\r\nn2975gat = OR(n1443gat, n1325gat)\r\nn2974gat = OR(n1321gat, n1320gat)\r\nn2966gat = OR(n1368gat, n1258gat)\r\nn2979gat = OR(n1373gat, n1372gat)\r\nn2978gat = OR(n1441gat, n1440gat, n1371gat, n1367gat)\r\nn2982gat = OR(n1504gat, n1502gat)\r\nn2954gat = OR(n1250gat, n1103gat)\r\nn2964gat = OR(n1304gat, n1249gat)\r\nn2958gat = OR(n1246gat, n1161gat)\r\nn2963gat = OR(n1291gat, n1245gat)\r\nn2973gat = OR(n1352gat, n1351gat, n1303gat, n1302gat)\r\nn2953gat = OR(n1163gat, n1102gat)\r\nn2949gat = OR(n1101gat, n996gat)\r\nn2934gat = OR(n1104gat, n887gat)\r\nn2959gat = OR(n1305gat, n1162gat)\r\nn2977gat = OR(n1360gat, n1359gat, n1358gat, n1357gat)\r\nI2720 = OR(n1788gat, n1786gat, n1839gat)\r\nI2721 = OR(n1884gat, n1783gat, I2720)\r\nI2735 = OR(n1788gat, n1884gat, n1633gat)\r\nI2736 = OR(n1785gat, n1784gat, I2735)\r\nI2812 = OR(n1703gat, n1704gat, n1778gat)\r\nI2813 = OR(n1609gat, n1702gat, n1700gat, I2812)\r\nI2831 = OR(n1839gat, n1786gat, n1788gat)\r\nI2832 = OR(n1884gat, n1784gat, I2831)\r\nI2889 = OR(n1784gat, n1633gat, n1884gat)\r\nI2890 = OR(n1788gat, n1786gat, I2889)\r\nI2925 = OR(n1784gat, n1785gat, n1633gat)\r\nI2926 = OR(n1884gat, n1787gat, I2925)\r\nI2934 = OR(n1784gat, n1839gat, n1788gat)\r\nI2935 = OR(n1785gat, n1884gat, I2934)\r\nn2988gat = OR(n1733gat, n1581gat)\r\nn2983gat = OR(n2079gat, n2073gat)\r\nn2987gat = OR(n1574gat, n1573gat)\r\nn2992gat = OR(n1723gat, n1647gat, n1646gat)\r\nn2986gat = OR(n1650gat, n1649gat, n1563gat)\r\nn2991gat = OR(n1654gat, n1653gat, n1644gat)\r\nI3148 = OR(n1839gat, n1884gat, n1784gat)\r\nI3149 = OR(n1786gat, n1787gat, I3148)\r\nI3178 = OR(n1838gat, n1785gat, n1788gat)\r\nI3179 = OR(n1839gat, n1784gat, I3178)\r\nn2981gat = OR(n1413gat, n1408gat, n1407gat)\r\nn3000gat = OR(n2000gat, n1999gat)\r\nn3004gat = OR(n2258gat, n2257gat, n2255gat)\r\nn3003gat = OR(n2256gat, n2251gat)\r\nn3001gat = OR(n2132gat, n2130gat)\r\nn3006gat = OR(n2253gat, n2252gat)\r\nn3007gat = OR(n2250gat, n2249gat)\r\nn2990gat = OR(n1710gat, n1630gat)\r\nn2994gat = OR(n1954gat, n1888gat)\r\nn2993gat = OR(n1894gat, n1847gat, n1846gat)\r\nn2998gat = OR(n2055gat, n1967gat)\r\nn2996gat = OR(n1960gat, n1959gat, n1957gat)\r\nn3008gat = OR(n2332gat, n2259gat)\r\nn3005gat = OR(n2211gat, n2210gat)\r\nn2997gat = OR(n2053gat, n2052gat, n1964gat)\r\nn3009gat = OR(n2350gat, n2282gat)\r\nn3002gat = OR(n2213gat, n2150gat, n2149gat)\r\nn2995gat = OR(n1962gat, n1955gat)\r\nn2999gat = OR(n1972gat, n1971gat)\r\nn3011gat = OR(n2333gat, n2331gat)\r\nn3015gat = OR(n2566gat, n2565gat)\r\nn2874gat = OR(n141gat, n38gat, n37gat)\r\nn2917gat = OR(n1074gat, n872gat)\r\nn2878gat = OR(n234gat, n137gat)\r\nn2892gat = OR(n378gat, n377gat)\r\nn2885gat = OR(n250gat, n249gat, n248gat)\r\nn2900gat = OR(n869gat, n453gat, n448gat)\r\nn2883gat = OR(n251gat, n244gat)\r\nn2929gat = OR(n974gat, n973gat, n870gat)\r\nn2884gat = OR(n246gat, n245gat)\r\nn2902gat = OR(n460gat, n459gat)\r\nn2925gat = OR(n975gat, n972gat, n969gat)\r\nn2879gat = OR(n145gat, n143gat)\r\nn2916gat = OR(n971gat, n970gat, n968gat)\r\nn2875gat = OR(n142gat, n40gat, n39gat)\r\nn2899gat = OR(n772gat, n451gat, n446gat)\r\nn2877gat = OR(n139gat, n136gat)\r\nn2893gat = OR(n391gat, n390gat)\r\nn2926gat = OR(n1083gat, n1077gat)\r\nn2882gat = OR(n242gat, n240gat)\r\nn2924gat = OR(n871gat, n797gat)\r\nn2881gat = OR(n324gat, n238gat, n237gat)\r\nn2923gat = OR(n1082gat, n796gat)\r\nn2710gat = OR(n69gat, n1885gat)\r\nn2704gat = OR(n11gat, n1889gat)\r\nn2684gat = OR(n1599gat, n2051gat)\r\nn2830gat = OR(n2444gat, n1754gat)\r\nI3999 = OR(n2167gat, n2031gat, n2174gat)\r\nI4000 = OR(n2108gat, n2093gat, n2035gat, I3999)\r\nn2695gat = OR(n1586gat, n1791gat)\r\nn2703gat = OR(n1755gat, n1518gat)\r\nn2744gat = OR(n2159gat, n2478gat)\r\nn2800gat = OR(n2158gat, n2186gat)\r\nI4023 = OR(n2443gat, n2290gat, n2214gat)\r\nI4024 = OR(n2353gat, n2284gat, I4023)\r\nn2980gat = OR(n1470gat, n1400gat, n1399gat, n1398gat)\r\nI4144 = OR(n1633gat, n1838gat, n1786gat)\r\nI4145 = OR(n1788gat, n1784gat, I4144)\r\nn2984gat = OR(n1467gat, n1466gat)\r\nn2985gat = OR(n1686gat, n1533gat, n1532gat, n1531gat)\r\nI4216 = OR(n1427gat, n1595gat, n1677gat)\r\nI4217 = OR(n1392gat, n2989gat, I4216)\r\nn2931gat = OR(n1100gat, n994gat, n989gat, n880gat)\r\nn2943gat = OR(n1012gat, n905gat)\r\nn2941gat = OR(n1003gat, n902gat)\r\nn2946gat = OR(n1099gat, n998gat, n995gat, n980gat)\r\nn2960gat = OR(n1175gat, n1174gat)\r\nn2950gat = OR(n1001gat, n999gat)\r\nn2969gat = OR(n1323gat, n1264gat)\r\nn2933gat = OR(n981gat, n890gat, n889gat, n886gat)\r\nn2935gat = OR(n892gat, n891gat)\r\nn2942gat = OR(n904gat, n903gat)\r\nn2940gat = OR(n1152gat, n1092gat, n997gat, n993gat)\r\nn2937gat = OR(n900gat, n895gat)\r\nn2947gat = OR(n1094gat, n1093gat, n988gat, n984gat)\r\nn2965gat = OR(n1267gat, n1257gat)\r\nn2956gat = OR(n1178gat, n1116gat)\r\nn2961gat = OR(n1375gat, n1324gat)\r\nn2939gat = OR(n1091gat, n1088gat, n992gat, n987gat)\r\nn2938gat = OR(n899gat, n896gat)\r\nn2967gat = OR(n1262gat, n1260gat)\r\nn2932gat = OR(n1098gat, n1090gat, n986gat, n885gat)\r\nn2936gat = OR(n901gat, n893gat)\r\nn2948gat = OR(n1097gat, n1089gat, n1087gat, n991gat)\r\nn2968gat = OR(n1326gat, n1261gat)\r\nn2955gat = OR(n1177gat, n1115gat)\r\nn2944gat = OR(n977gat, n976gat)\r\nn2945gat = OR(n1096gat, n1095gat, n990gat, n979gat)\r\nn2962gat = OR(n1176gat, n1173gat)\r\nn2951gat = OR(n1004gat, n1000gat)\r\nn2764gat = OR(n1029gat, n2237gat)\r\nn2762gat = OR(n1028gat, n1782gat)\r\nn2761gat = OR(n1031gat, n2325gat)\r\nn2757gat = OR(n1030gat, n2245gat)\r\nn2756gat = OR(n1011gat, n2244gat)\r\nn2750gat = OR(n1181gat, n2243gat)\r\nn2749gat = OR(n1010gat, n2246gat)\r\nn2742gat = OR(n1005gat, n2384gat)\r\nn2741gat = OR(n1182gat, n2385gat)\r\nn2694gat = OR(n1381gat, n1384gat)\r\nn2693gat = OR(n1451gat, n1453gat)\r\nn2702gat = OR(n925gat, n1452gat)\r\nn2701gat = OR(n921gat, n1890gat)\r\nn2709gat = OR(n739gat, n1841gat)\r\nn2708gat = OR(n848gat, n2047gat)\r\nn2799gat = OR(n849gat, n2050gat)\r\nn2798gat = OR(n1032gat, n2054gat)\r\nn2812gat = OR(n73gat, n70gat, n1840gat)\r\nn2822gat = OR(n77gat, n13gat, n1842gat)\r\nn421gat = NOR(n2715gat, n2723gat)\r\nn648gat = NOR(n373gat, n2669gat)\r\nn442gat = NOR(n2844gat, n856gat)\r\nn1499gat = NOR(n396gat, n401gat)\r\nn1616gat = NOR(n918gat, n396gat)\r\nn1614gat = NOR(n396gat, n845gat)\r\nn1641gat = NOR(n1645gat, n1553gat, n1559gat)\r\nn1642gat = NOR(n1559gat, n1616gat, n1645gat)\r\nn1556gat = NOR(n1614gat, n1645gat, n1616gat)\r\nn1557gat = NOR(n1553gat, n1645gat, n1614gat)\r\nn1639gat = NOR(n1499gat, n1559gat, n1553gat)\r\nn1605gat = NOR(n1614gat, n1616gat, n1499gat, n396gat)\r\nn1555gat = NOR(n1616gat, n1559gat, n1499gat)\r\nn1558gat = NOR(n1614gat, n1553gat, n1499gat)\r\nn1256gat = NOR(n392gat, n702gat)\r\nn1117gat = NOR(n720gat, n725gat)\r\nn1618gat = NOR(n1319gat, n1447gat)\r\nn1114gat = NOR(n725gat, n721gat)\r\nn1621gat = NOR(n1319gat, n1380gat)\r\nn1318gat = NOR(n392gat, n701gat)\r\nn1619gat = NOR(n1447gat, n1446gat)\r\nn1622gat = NOR(n1380gat, n1446gat)\r\nn1214gat = NOR(n1218gat, n1219gat, n1220gat)\r\nn1215gat = NOR(n1218gat, n1221gat, n1222gat)\r\nn1216gat = NOR(n1223gat, n1219gat, n1222gat)\r\nn1217gat = NOR(n1223gat, n1221gat, n1220gat)\r\nn745gat = NOR(n2716gat, n2867gat)\r\nn638gat = NOR(n2715gat, n2868gat)\r\nn423gat = NOR(n2724gat, n2726gat)\r\nn362gat = NOR(n2723gat, n2727gat)\r\nn749gat = NOR(n753gat, n754gat, n755gat)\r\nn750gat = NOR(n753gat, n756gat, n757gat)\r\nn751gat = NOR(n758gat, n754gat, n757gat)\r\nn752gat = NOR(n758gat, n756gat, n755gat)\r\nn259gat = NOR(n263gat, n264gat, n265gat)\r\nn260gat = NOR(n263gat, n266gat, n267gat)\r\nn261gat = NOR(n268gat, n264gat, n267gat)\r\nn262gat = NOR(n268gat, n266gat, n265gat)\r\nn1014gat = NOR(n1018gat, n1019gat, n1020gat)\r\nn1015gat = NOR(n1018gat, n1021gat, n1022gat)\r\nn1016gat = NOR(n1023gat, n1019gat, n1022gat)\r\nn1017gat = NOR(n1023gat, n1021gat, n1020gat)\r\nn476gat = NOR(n480gat, n481gat, n482gat)\r\nn477gat = NOR(n480gat, n483gat, n484gat)\r\nn478gat = NOR(n485gat, n481gat, n484gat)\r\nn479gat = NOR(n485gat, n483gat, n482gat)\r\nn44gat = NOR(n48gat, n49gat, n50gat)\r\nn45gat = NOR(n48gat, n51gat, n52gat)\r\nn46gat = NOR(n53gat, n49gat, n52gat)\r\nn47gat = NOR(n53gat, n51gat, n50gat)\r\nn1376gat = NOR(n724gat, n720gat)\r\nn1617gat = NOR(n1319gat, n1448gat)\r\nn1377gat = NOR(n724gat, n721gat)\r\nn1624gat = NOR(n1319gat, n1379gat)\r\nn1113gat = NOR(n393gat, n701gat)\r\nn1501gat = NOR(n1448gat, n1500gat)\r\nn1623gat = NOR(n1379gat, n1446gat)\r\nn1620gat = NOR(n1448gat, n1446gat)\r\nn1827gat = NOR(n2729gat, n2317gat)\r\nn1817gat = NOR(n1819gat, n1823gat)\r\nn1935gat = NOR(n1816gat, n1828gat)\r\nn529gat = NOR(n2724gat, n2715gat)\r\nn361gat = NOR(n2859gat, n2726gat)\r\nn168gat = NOR(n172gat, n173gat, n174gat)\r\nn169gat = NOR(n172gat, n175gat, n176gat)\r\nn170gat = NOR(n177gat, n173gat, n176gat)\r\nn171gat = NOR(n177gat, n175gat, n174gat)\r\nn907gat = NOR(n911gat, n912gat, n913gat)\r\nn908gat = NOR(n911gat, n914gat, n915gat)\r\nn909gat = NOR(n916gat, n912gat, n915gat)\r\nn910gat = NOR(n916gat, n914gat, n913gat)\r\nn344gat = NOR(n348gat, n349gat, n350gat)\r\nn345gat = NOR(n348gat, n351gat, n352gat)\r\nn346gat = NOR(n353gat, n349gat, n352gat)\r\nn347gat = NOR(n353gat, n351gat, n350gat)\r\nn56gat = NOR(n60gat, n61gat, n62gat)\r\nn57gat = NOR(n60gat, n63gat, n64gat)\r\nn58gat = NOR(n65gat, n61gat, n64gat)\r\nn59gat = NOR(n65gat, n63gat, n62gat)\r\nn768gat = NOR(n373gat, n2731gat)\r\nn655gat = NOR(n856gat, n2718gat)\r\nn963gat = NOR(n856gat, n2838gat)\r\nn868gat = NOR(n2775gat, n373gat)\r\nn962gat = NOR(n856gat, n2711gat)\r\nn959gat = NOR(n373gat, n2734gat)\r\nn945gat = NOR(n949gat, n950gat, n951gat)\r\nn946gat = NOR(n949gat, n952gat, n953gat)\r\nn947gat = NOR(n954gat, n950gat, n953gat)\r\nn948gat = NOR(n954gat, n952gat, n951gat)\r\nn647gat = NOR(n2792gat, n373gat)\r\nn441gat = NOR(n856gat, n2846gat)\r\nn967gat = NOR(n373gat, n2672gat)\r\nn792gat = NOR(n2852gat, n856gat)\r\nn1229gat = NOR(n1233gat, n1234gat, n1235gat)\r\nn1230gat = NOR(n1233gat, n1236gat, n1237gat)\r\nn1231gat = NOR(n1238gat, n1234gat, n1237gat)\r\nn1232gat = NOR(n1238gat, n1236gat, n1235gat)\r\nn443gat = NOR(n2778gat, n373gat)\r\nn439gat = NOR(n856gat, n2836gat)\r\nn966gat = NOR(n2789gat, n373gat)\r\nn790gat = NOR(n856gat, n2840gat)\r\nn444gat = NOR(n373gat, n2781gat)\r\nn440gat = NOR(n856gat, n2842gat)\r\nn1051gat = NOR(n1055gat, n1056gat, n1057gat)\r\nn1052gat = NOR(n1055gat, n1058gat, n1059gat)\r\nn1053gat = NOR(n1060gat, n1056gat, n1059gat)\r\nn1054gat = NOR(n1060gat, n1058gat, n1057gat)\r\nn934gat = NOR(n938gat, n939gat, n940gat)\r\nn935gat = NOR(n938gat, n941gat, n942gat)\r\nn936gat = NOR(n943gat, n939gat, n942gat)\r\nn937gat = NOR(n943gat, n941gat, n940gat)\r\nn746gat = NOR(n2716gat, n2723gat)\r\nn360gat = NOR(n2859gat, n2727gat)\r\nn710gat = NOR(n714gat, n715gat, n716gat)\r\nn711gat = NOR(n714gat, n717gat, n718gat)\r\nn712gat = NOR(n719gat, n715gat, n718gat)\r\nn713gat = NOR(n719gat, n717gat, n716gat)\r\nn729gat = NOR(n733gat, n734gat, n735gat)\r\nn730gat = NOR(n733gat, n736gat, n737gat)\r\nn731gat = NOR(n738gat, n734gat, n737gat)\r\nn732gat = NOR(n738gat, n736gat, n735gat)\r\nn494gat = NOR(n498gat, n499gat, n500gat)\r\nn495gat = NOR(n498gat, n501gat, n502gat)\r\nn496gat = NOR(n503gat, n499gat, n502gat)\r\nn497gat = NOR(n503gat, n501gat, n500gat)\r\nn505gat = NOR(n509gat, n510gat, n511gat)\r\nn506gat = NOR(n509gat, n512gat, n513gat)\r\nn507gat = NOR(n514gat, n510gat, n513gat)\r\nn508gat = NOR(n514gat, n512gat, n511gat)\r\nn564gat = NOR(n3029gat, n2863gat, n2855gat, n374gat)\r\nn86gat = NOR(n743gat, n294gat, n17gat)\r\nn78gat = NOR(n2784gat, n79gat)\r\nn767gat = NOR(n219gat, n2731gat)\r\nn286gat = NOR(n289gat, n2723gat)\r\nn287gat = NOR(n289gat, n2715gat)\r\nn288gat = NOR(n289gat, n2726gat)\r\nn181gat = NOR(n286gat, n179gat, n188gat)\r\nn182gat = NOR(n72gat, n2720gat)\r\nn653gat = NOR(n2718gat, n111gat)\r\nn867gat = NOR(n219gat, n2775gat)\r\nn771gat = NOR(n2838gat, n111gat)\r\nn964gat = NOR(n111gat, n2711gat)\r\nn961gat = NOR(n219gat, n2734gat)\r\nn804gat = NOR(n808gat, n809gat, n810gat)\r\nn805gat = NOR(n808gat, n811gat, n812gat)\r\nn806gat = NOR(n813gat, n809gat, n812gat)\r\nn807gat = NOR(n813gat, n811gat, n810gat)\r\nn587gat = NOR(n591gat, n592gat, n593gat)\r\nn588gat = NOR(n591gat, n594gat, n595gat)\r\nn589gat = NOR(n596gat, n592gat, n595gat)\r\nn590gat = NOR(n596gat, n594gat, n593gat)\r\nn447gat = NOR(n2836gat, n111gat)\r\nn445gat = NOR(n2778gat, n219gat)\r\nn687gat = NOR(n691gat, n692gat, n693gat)\r\nn688gat = NOR(n691gat, n694gat, n695gat)\r\nn689gat = NOR(n696gat, n692gat, n695gat)\r\nn690gat = NOR(n696gat, n694gat, n693gat)\r\nn568gat = NOR(n572gat, n573gat, n574gat)\r\nn569gat = NOR(n572gat, n575gat, n576gat)\r\nn570gat = NOR(n577gat, n573gat, n576gat)\r\nn571gat = NOR(n577gat, n575gat, n574gat)\r\nn187gat = NOR(n189gat, n287gat, n188gat)\r\nn197gat = NOR(n194gat, n297gat)\r\nn15gat = NOR(n637gat, n17gat, n293gat)\r\nn22gat = NOR(n92gat, n21gat)\r\nn93gat = NOR(n197gat, n22gat)\r\nn769gat = NOR(n93gat, n2731gat)\r\nn2534gat = NOR(n2624gat, n2489gat, n2621gat)\r\nn2430gat = NOR(n2533gat, n2486gat, n2429gat)\r\nn1606gat = NOR(n3020gat, n270gat)\r\nn2239gat = NOR(n2850gat, n3019gat)\r\nn1934gat = NOR(n2470gat, n1935gat, n2239gat)\r\nn1610gat = NOR(n1698gat, n1543gat)\r\nn1692gat = NOR(n1879gat, n1762gat)\r\nn2433gat = NOR(n2432gat, n2154gat)\r\nn2531gat = NOR(n2488gat, n2625gat, n2621gat)\r\nn2480gat = NOR(n2530gat, n2482gat, n2486gat)\r\nn2427gat = NOR(n2426gat, n2153gat)\r\nn2428gat = NOR(n2433gat, n2427gat)\r\nn1778gat = NOR(n3026gat, n1779gat)\r\nn1609gat = NOR(n1503gat, n3025gat)\r\nn1702gat = NOR(n3024gat, n1615gat)\r\nn1700gat = NOR(n1701gat, n3023gat)\r\nn1604gat = NOR(n1778gat, n1609gat, n1702gat, n1700gat)\r\nn1076gat = NOR(n93gat, n2775gat)\r\nn766gat = NOR(n93gat, n2734gat)\r\nn1185gat = NOR(n1189gat, n1190gat, n1191gat)\r\nn1186gat = NOR(n1189gat, n1192gat, n1193gat)\r\nn1187gat = NOR(n1194gat, n1190gat, n1193gat)\r\nn1188gat = NOR(n1194gat, n1192gat, n1191gat)\r\nn645gat = NOR(n2792gat, n93gat)\r\nn646gat = NOR(n93gat, n2669gat)\r\nn1383gat = NOR(n1280gat, n1225gat)\r\nn1327gat = NOR(n1281gat, n1224gat)\r\nn651gat = NOR(n93gat, n2778gat)\r\nn652gat = NOR(n2789gat, n93gat)\r\nn765gat = NOR(n2781gat, n93gat)\r\nn1202gat = NOR(n1206gat, n1207gat, n1208gat)\r\nn1203gat = NOR(n1206gat, n1209gat, n1210gat)\r\nn1204gat = NOR(n1211gat, n1207gat, n1210gat)\r\nn1205gat = NOR(n1211gat, n1209gat, n1208gat)\r\nn1270gat = NOR(n1274gat, n1275gat, n1276gat)\r\nn1271gat = NOR(n1274gat, n1277gat, n1278gat)\r\nn1272gat = NOR(n1279gat, n1275gat, n1278gat)\r\nn1273gat = NOR(n1279gat, n1277gat, n1276gat)\r\nn763gat = NOR(n2672gat, n93gat)\r\nn1287gat = NOR(n1284gat, n1195gat)\r\nn1285gat = NOR(n1196gat, n1269gat)\r\nn853gat = NOR(n740gat, n2148gat)\r\nn793gat = NOR(n2852gat, n851gat)\r\nn854gat = NOR(n2148gat, n374gat)\r\nn556gat = NOR(n2672gat, n852gat)\r\nn795gat = NOR(n2731gat, n852gat)\r\nn656gat = NOR(n851gat, n2718gat)\r\nn794gat = NOR(n852gat, n2775gat)\r\nn773gat = NOR(n851gat, n2838gat)\r\nn965gat = NOR(n2711gat, n851gat)\r\nn960gat = NOR(n2734gat, n852gat)\r\nn780gat = NOR(n784gat, n785gat, n786gat)\r\nn781gat = NOR(n784gat, n787gat, n788gat)\r\nn782gat = NOR(n789gat, n785gat, n788gat)\r\nn783gat = NOR(n789gat, n787gat, n786gat)\r\nn555gat = NOR(n852gat, n2792gat)\r\nn450gat = NOR(n851gat, n2846gat)\r\nn654gat = NOR(n851gat, n2844gat)\r\nn557gat = NOR(n2669gat, n852gat)\r\nn874gat = NOR(n559gat, n365gat)\r\nn132gat = NOR(n560gat, n364gat)\r\nn649gat = NOR(n2778gat, n852gat)\r\nn449gat = NOR(n2836gat, n851gat)\r\nn791gat = NOR(n851gat, n2840gat)\r\nn650gat = NOR(n852gat, n2789gat)\r\nn774gat = NOR(n2842gat, n851gat)\r\nn764gat = NOR(n852gat, n2781gat)\r\nn222gat = NOR(n226gat, n227gat, n228gat)\r\nn223gat = NOR(n226gat, n229gat, n230gat)\r\nn224gat = NOR(n231gat, n227gat, n230gat)\r\nn225gat = NOR(n231gat, n229gat, n228gat)\r\nn121gat = NOR(n125gat, n126gat, n127gat)\r\nn122gat = NOR(n125gat, n128gat, n129gat)\r\nn123gat = NOR(n130gat, n126gat, n129gat)\r\nn124gat = NOR(n130gat, n128gat, n127gat)\r\nn2460gat = NOR(n666gat, n120gat)\r\nn2423gat = NOR(n665gat, n1601gat)\r\nn2594gat = NOR(n3017gat, n2520gat, n2597gat)\r\nn2569gat = NOR(n2573gat, n2574gat, n2575gat)\r\nn2570gat = NOR(n2573gat, n2576gat, n2577gat)\r\nn2571gat = NOR(n2578gat, n2574gat, n2577gat)\r\nn2572gat = NOR(n2578gat, n2576gat, n2575gat)\r\nn2410gat = NOR(n2414gat, n2415gat, n2416gat)\r\nn2411gat = NOR(n2414gat, n2417gat, n2418gat)\r\nn2412gat = NOR(n2419gat, n2415gat, n2418gat)\r\nn2413gat = NOR(n2419gat, n2417gat, n2416gat)\r\nn2583gat = NOR(n2582gat, n2585gat)\r\nn2580gat = NOR(n2582gat, n2583gat)\r\nn2581gat = NOR(n2583gat, n2585gat)\r\nn2567gat = NOR(n2493gat, n2388gat)\r\nn2499gat = NOR(n2389gat, n2494gat)\r\nn299gat = NOR(n2268gat, n2338gat)\r\nn207gat = NOR(n2337gat, n2269gat)\r\nn2650gat = NOR(n2649gat, n2652gat)\r\nn2647gat = NOR(n2649gat, n2650gat)\r\nn2648gat = NOR(n2650gat, n2652gat)\r\nn2602gat = NOR(n2606gat, n2607gat, n2608gat)\r\nn2603gat = NOR(n2606gat, n2609gat, n2610gat)\r\nn2604gat = NOR(n2611gat, n2607gat, n2610gat)\r\nn2605gat = NOR(n2611gat, n2609gat, n2608gat)\r\nn2546gat = NOR(n2550gat, n2551gat, n2552gat)\r\nn2547gat = NOR(n2550gat, n2553gat, n2554gat)\r\nn2548gat = NOR(n2555gat, n2551gat, n2554gat)\r\nn2549gat = NOR(n2555gat, n2553gat, n2552gat)\r\nn2617gat = NOR(n2616gat, n2619gat)\r\nn2614gat = NOR(n2616gat, n2617gat)\r\nn2615gat = NOR(n2617gat, n2619gat)\r\nn2655gat = NOR(n2508gat, n2656gat, n2500gat, n2504gat)\r\nn2293gat = NOR(n2353gat, n2284gat, n2443gat)\r\nn2219gat = NOR(n2354gat, n2214gat)\r\nn1529gat = NOR(n1528gat, n1523gat)\r\nn1704gat = NOR(n3027gat, n1706gat)\r\nn2461gat = NOR(n120gat, n2666gat)\r\nn2421gat = NOR(n1601gat, n1704gat)\r\nn1598gat = NOR(n1592gat, n2422gat)\r\nn2218gat = NOR(n2214gat, n2290gat)\r\nn2358gat = NOR(n2285gat, n2356gat, n2355gat)\r\nn1415gat = NOR(n2081gat, n2359gat)\r\nn1153gat = NOR(n1414gat, n566gat)\r\nn2292gat = NOR(n2443gat, n2284gat, n2285gat)\r\nn1416gat = NOR(n2081gat, n1480gat)\r\nn1151gat = NOR(n1301gat, n1150gat)\r\nn2306gat = NOR(n2356gat, n2284gat, n2285gat)\r\nn1481gat = NOR(n2081gat, n2011gat)\r\nn982gat = NOR(n873gat, n1478gat)\r\nn2357gat = NOR(n2285gat, n2355gat, n2443gat)\r\nn1347gat = NOR(n2081gat, n1410gat)\r\nn877gat = NOR(n875gat, n876gat)\r\nn1484gat = NOR(n2081gat, n1528gat)\r\nn1159gat = NOR(n1160gat, n1084gat)\r\nn2363gat = NOR(n2353gat, n2356gat, n2355gat)\r\nn1483gat = NOR(n2081gat, n1482gat)\r\nn1158gat = NOR(n983gat, n1157gat)\r\nn2364gat = NOR(n2353gat, n2284gat, n2356gat)\r\nn1308gat = NOR(n2081gat, n1530gat)\r\nn1156gat = NOR(n985gat, n1307gat)\r\nn2291gat = NOR(n2353gat, n2355gat, n2443gat)\r\nn1349gat = NOR(n1479gat, n2081gat)\r\nn1155gat = NOR(n1085gat, n1348gat)\r\nn1154gat = NOR(n1598gat, n2930gat, n2957gat)\r\nn1703gat = NOR(n1705gat, n3028gat)\r\nn1608gat = NOR(n1704gat, n1703gat)\r\nn1411gat = NOR(n1154gat, n1608gat)\r\nn2223gat = NOR(n2354gat, n2217gat)\r\nn1438gat = NOR(n1591gat, n1480gat)\r\nn1625gat = NOR(n3021gat, n1628gat)\r\nn1626gat = NOR(n1627gat, n3022gat)\r\nn1831gat = NOR(n1832gat, n1765gat, n1878gat)\r\nn1443gat = NOR(n1442gat, n706gat)\r\nn1325gat = NOR(n1444gat, n164gat)\r\nn1441gat = NOR(n1437gat, n1378gat)\r\nn1321gat = NOR(n1442gat, n837gat)\r\nn1320gat = NOR(n1444gat, n278gat)\r\nn1486gat = NOR(n1482gat, n1591gat)\r\nn1440gat = NOR(n1322gat, n1439gat)\r\nn1426gat = NOR(n2011gat, n1591gat)\r\nn1368gat = NOR(n1442gat, n613gat)\r\nn1258gat = NOR(n274gat, n1444gat)\r\nn1371gat = NOR(n1370gat, n1369gat)\r\nn1365gat = NOR(n1479gat, n1591gat)\r\nn1373gat = NOR(n833gat, n1442gat)\r\nn1372gat = NOR(n282gat, n1444gat)\r\nn1367gat = NOR(n1366gat, n1374gat)\r\nn2220gat = NOR(n2290gat, n2217gat)\r\nn1423gat = NOR(n2162gat, n1530gat)\r\nn1498gat = NOR(n1609gat, n1427gat)\r\nn1504gat = NOR(n1450gat, n1498gat)\r\nn1607gat = NOR(n2082gat, n1609gat)\r\nn1494gat = NOR(n1528gat, n2162gat)\r\nn1502gat = NOR(n1607gat, n1449gat)\r\nn1250gat = NOR(n1603gat, n815gat)\r\nn1103gat = NOR(n956gat, n1590gat)\r\nn1417gat = NOR(n2162gat, n1480gat)\r\nn1352gat = NOR(n1248gat, n1418gat)\r\nn1304gat = NOR(n1590gat, n1067gat)\r\nn1249gat = NOR(n679gat, n1603gat)\r\nn1419gat = NOR(n2162gat, n1479gat)\r\nn1351gat = NOR(n1306gat, n1353gat)\r\nn1246gat = NOR(n864gat, n1590gat)\r\nn1161gat = NOR(n583gat, n1603gat)\r\nn1422gat = NOR(n2011gat, n2162gat)\r\nn1303gat = NOR(n1247gat, n1355gat)\r\nn1291gat = NOR(n1603gat, n579gat)\r\nn1245gat = NOR(n1590gat, n860gat)\r\nn1485gat = NOR(n1482gat, n2162gat)\r\nn1302gat = NOR(n1300gat, n1487gat)\r\nn1163gat = NOR(n882gat, n1603gat)\r\nn1102gat = NOR(n1297gat, n1590gat)\r\nn1354gat = NOR(n1591gat, n1530gat)\r\nn1360gat = NOR(n1164gat, n1356gat)\r\nn1435gat = NOR(n1591gat, n1528gat)\r\nn1101gat = NOR(n1590gat, n1293gat)\r\nn996gat = NOR(n1603gat, n823gat)\r\nn1359gat = NOR(n1436gat, n1106gat)\r\nn1421gat = NOR(n2162gat, n2359gat)\r\nn1104gat = NOR(n1079gat, n1590gat)\r\nn887gat = NOR(n1603gat, n683gat)\r\nn1358gat = NOR(n1425gat, n1105gat)\r\nn1420gat = NOR(n1410gat, n2162gat)\r\nn1305gat = NOR(n1147gat, n1590gat)\r\nn1162gat = NOR(n698gat, n1603gat)\r\nn1357gat = NOR(n1424gat, n1309gat)\r\nn1428gat = NOR(n2978gat, n2982gat, n2973gat, n2977gat)\r\nn1794gat = NOR(n1673gat, n1719gat)\r\nn1796gat = NOR(n1858gat, n1635gat)\r\nn1792gat = NOR(n1794gat, n1796gat)\r\nn1865gat = NOR(n1989gat, n1918gat, n1986gat)\r\nn1861gat = NOR(n1866gat, n2216gat, n1988gat)\r\nn1793gat = NOR(n1792gat, n1735gat)\r\nn1406gat = NOR(n1428gat, n1387gat)\r\nn1780gat = NOR(n1777gat, n1625gat, n1626gat)\r\nn2016gat = NOR(n2019gat, n1878gat)\r\nn2664gat = NOR(n2850gat, n3018gat)\r\nn1666gat = NOR(n1986gat, n2212gat, n1991gat)\r\nn1578gat = NOR(n2152gat, n2351gat, n1665gat)\r\nn1516gat = NOR(n1551gat, n1517gat)\r\nn1864gat = NOR(n1858gat, n1495gat, n2090gat)\r\nn1565gat = NOR(n1735gat, n1552gat)\r\nn1921gat = NOR(n1738gat, n1673gat)\r\nn1798gat = NOR(n1739gat, n1673gat)\r\nn1920gat = NOR(n1864gat, n1921gat, n1798gat)\r\nn1926gat = NOR(n1925gat, n1635gat)\r\nn1916gat = NOR(n1917gat, n1859gat)\r\nn1994gat = NOR(n1719gat, n1922gat)\r\nn1924gat = NOR(n1743gat, n1923gat)\r\nn2078gat = NOR(n1926gat, n1916gat, n1994gat, n1924gat)\r\nn1690gat = NOR(n1700gat, n1702gat)\r\nn1660gat = NOR(n1918gat, n1986gat, n2212gat)\r\nn1576gat = NOR(n2351gat, n1988gat, n1661gat)\r\nn1733gat = NOR(n1673gat, n1572gat)\r\nn1582gat = NOR(n2283gat, n1991gat, n2212gat)\r\nn1577gat = NOR(n1520gat, n2351gat, n1988gat)\r\nn1581gat = NOR(n1858gat, n1580gat)\r\nn2129gat = NOR(n2189gat, n2134gat, n2261gat)\r\nn2079gat = NOR(n2078gat, n2178gat, n1990gat, n2128gat)\r\nn1695gat = NOR(n1609gat, n1778gat, n1704gat, n1703gat)\r\nn2073gat = NOR(n2078gat, n1990gat, n2181gat)\r\nn1696gat = NOR(n1707gat, n1698gat)\r\nn1758gat = NOR(n1311gat, n1773gat)\r\nn1574gat = NOR(n1719gat, n1673gat, n1444gat)\r\nn1573gat = NOR(n1444gat, n1858gat, n1635gat)\r\nn1521gat = NOR(n2283gat, n1991gat)\r\nn1737gat = NOR(n2212gat, n2152gat)\r\nn1732gat = NOR(n1515gat, n1736gat, n1658gat)\r\nn1723gat = NOR(n1659gat, n1722gat, n1724gat)\r\nn1663gat = NOR(n1986gat, n1918gat)\r\nn1655gat = NOR(n1736gat, n1662gat, n1658gat)\r\nn1647gat = NOR(n1656gat, n1659gat, n1554gat)\r\nn1667gat = NOR(n1991gat, n1986gat)\r\nn1570gat = NOR(n1736gat, n1658gat, n1670gat)\r\nn1646gat = NOR(n1569gat, n1659gat, n1566gat)\r\nn1575gat = NOR(n1918gat, n2283gat)\r\nn1728gat = NOR(n1568gat, n1736gat, n1658gat)\r\nn1650gat = NOR(n1727gat, n1659gat, n1640gat)\r\nn1801gat = NOR(n2152gat, n1989gat)\r\nn1731gat = NOR(n1658gat, n1515gat, n1797gat)\r\nn1649gat = NOR(n1560gat, n1659gat, n1730gat)\r\nn1571gat = NOR(n1670gat, n1658gat, n1797gat)\r\nn1563gat = NOR(n1561gat, n1562gat, n1659gat)\r\nn1734gat = NOR(n1988gat, n2212gat)\r\nn1669gat = NOR(n1668gat, n1742gat, n1670gat)\r\nn1654gat = NOR(n1671gat, n1659gat)\r\nn1657gat = NOR(n1662gat, n1797gat, n1658gat)\r\nn1653gat = NOR(n1651gat, n1652gat, n1659gat)\r\nn1729gat = NOR(n1658gat, n1797gat, n1568gat)\r\nn1644gat = NOR(n1643gat, n1648gat, n1659gat)\r\nn1726gat = NOR(n2992gat, n2986gat, n2991gat)\r\nn1929gat = NOR(n1758gat, n1790gat)\r\nn2009gat = NOR(n2016gat, n2664gat, n2004gat)\r\nn1413gat = NOR(n1869gat, n672gat, n2591gat)\r\nn1636gat = NOR(n1584gat, n1718gat)\r\nn1401gat = NOR(n1584gat, n1590gat)\r\nn1408gat = NOR(n1507gat, n1396gat, n1393gat)\r\nn1476gat = NOR(n1858gat, n1590gat)\r\nn1407gat = NOR(n1393gat, n1409gat, n1677gat)\r\nn1412gat = NOR(n1411gat, n1406gat, n2981gat)\r\nn2663gat = NOR(n2586gat, n2660gat, n2307gat)\r\nn2662gat = NOR(n2660gat, n2586gat)\r\nn2238gat = NOR(n2448gat, n2444gat)\r\nn87gat = NOR(n743gat, n17gat, n293gat)\r\nn200gat = NOR(n199gat, n92gat)\r\nn184gat = NOR(n189gat, n188gat, n179gat)\r\nn196gat = NOR(n297gat, n195gat)\r\nn204gat = NOR(n200gat, n196gat)\r\nn2163gat = NOR(n1790gat, n1310gat, n2664gat, n2168gat)\r\nn2258gat = NOR(n2260gat, n2189gat)\r\nn2255gat = NOR(n2261gat, n2188gat)\r\nn2015gat = NOR(n2039gat, n1774gat, n1315gat)\r\nn2017gat = NOR(n1790gat, n2016gat)\r\nn2018gat = NOR(n2016gat, n2097gat)\r\nn2014gat = NOR(n2035gat, n2093gat, n2018gat, n2664gat)\r\nn2194gat = NOR(n2187gat, n1855gat)\r\nn2192gat = NOR(n2184gat, n1855gat)\r\nn2185gat = NOR(n2261gat, n2189gat)\r\nn2132gat = NOR(n2133gat, n2131gat)\r\nn2130gat = NOR(n2134gat, n2185gat)\r\nn2057gat = NOR(n2049gat, n1855gat)\r\nn2250gat = NOR(n2248gat, n2264gat)\r\nn2249gat = NOR(n2265gat, n3006gat)\r\nn2329gat = NOR(n1855gat, n3007gat)\r\nn1958gat = NOR(n1963gat, n1886gat)\r\nn1895gat = NOR(n1845gat, n1891gat, n1968gat)\r\nn1710gat = NOR(n1709gat, n1629gat)\r\nn1630gat = NOR(n1895gat, n1631gat)\r\nn2195gat = NOR(n2200gat, n1855gat)\r\nn2556gat = NOR(n1711gat, n2437gat)\r\nn2539gat = NOR(n2048gat, n2437gat)\r\nn1894gat = NOR(n1968gat, n1891gat, n1969gat)\r\nn1847gat = NOR(n1958gat, n1845gat)\r\nn1846gat = NOR(n1845gat, n1893gat)\r\nn2436gat = NOR(n2437gat, n1892gat)\r\nn2055gat = NOR(n1891gat, n1958gat)\r\nn1967gat = NOR(n1893gat, n1968gat)\r\nn2387gat = NOR(n2056gat, n2437gat)\r\nn1959gat = NOR(n1956gat, n1963gat)\r\nn1957gat = NOR(n1886gat, n1887gat)\r\nn2330gat = NOR(n2437gat, n1961gat)\r\nn2147gat = NOR(n2988gat, n1855gat)\r\nn2498gat = NOR(n2199gat, n2328gat)\r\nn2193gat = NOR(n2393gat, n2439gat)\r\nn2211gat = NOR(n2193gat, n2402gat)\r\nn2210gat = NOR(n2401gat, n2151gat)\r\nn2396gat = NOR(n2199gat, n2209gat)\r\nn2053gat = NOR(n2393gat, n2438gat)\r\nn1964gat = NOR(n2392gat, n2439gat)\r\nn2198gat = NOR(n2199gat, n2058gat)\r\nn2215gat = NOR(n2346gat, n2151gat, n2402gat)\r\nn2350gat = NOR(n2405gat, n2349gat)\r\nn2282gat = NOR(n2406gat, n2215gat)\r\nn2197gat = NOR(n2199gat, n2281gat)\r\nn2213gat = NOR(n2402gat, n2151gat, n2345gat)\r\nn2150gat = NOR(n2401gat, n2346gat)\r\nn2149gat = NOR(n2193gat, n2346gat)\r\nn2196gat = NOR(n2199gat, n2146gat)\r\nn1882gat = NOR(n2124gat, n2115gat, n2239gat)\r\nn1962gat = NOR(n1963gat, n1893gat)\r\nn1896gat = NOR(n2995gat, n1895gat)\r\nn1972gat = NOR(n1974gat, n1970gat)\r\nn1971gat = NOR(n1896gat, n1973gat)\r\nn2559gat = NOR(n2999gat, n2437gat)\r\nn2331gat = NOR(n2393gat, n2401gat)\r\nn2352gat = NOR(n3011gat, n2215gat)\r\nn2566gat = NOR(n2643gat, n2564gat)\r\nn2565gat = NOR(n2352gat, n2642gat)\r\nn2637gat = NOR(n3015gat, n2199gat)\r\nn84gat = NOR(n296gat, n17gat, n294gat)\r\nn89gat = NOR(n88gat, n2784gat)\r\nn110gat = NOR(n182gat, n89gat)\r\nn1074gat = NOR(n2775gat, n110gat)\r\nn141gat = NOR(n155gat, n253gat, n150gat)\r\nn38gat = NOR(n151gat, n233gat)\r\nn37gat = NOR(n151gat, n154gat)\r\nn872gat = NOR(n375gat, n800gat)\r\nn234gat = NOR(n155gat, n233gat)\r\nn137gat = NOR(n154gat, n253gat)\r\nn378gat = NOR(n375gat, n235gat)\r\nn377gat = NOR(n110gat, n2778gat)\r\nn869gat = NOR(n219gat, n2792gat)\r\nn212gat = NOR(n182gat, n78gat)\r\nn250gat = NOR(n329gat, n387gat, n334gat)\r\nn249gat = NOR(n386gat, n330gat)\r\nn248gat = NOR(n330gat, n1490gat)\r\nn453gat = NOR(n372gat, n452gat)\r\nn448gat = NOR(n111gat, n2846gat)\r\nn974gat = NOR(n2844gat, n111gat)\r\nn251gat = NOR(n1490gat, n387gat)\r\nn244gat = NOR(n334gat, n386gat)\r\nn973gat = NOR(n372gat, n333gat)\r\nn870gat = NOR(n2669gat, n219gat)\r\nn975gat = NOR(n111gat, n2852gat)\r\nn246gat = NOR(n330gat, n325gat, n334gat)\r\nn245gat = NOR(n386gat, n334gat)\r\nn460gat = NOR(n462gat, n2884gat)\r\nn459gat = NOR(n457gat, n461gat)\r\nn972gat = NOR(n372gat, n458gat)\r\nn969gat = NOR(n219gat, n2672gat)\r\nn971gat = NOR(n111gat, n2840gat)\r\nn247gat = NOR(n334gat, n387gat, n330gat)\r\nn145gat = NOR(n144gat, n325gat)\r\nn143gat = NOR(n326gat, n247gat)\r\nn970gat = NOR(n372gat, n878gat)\r\nn968gat = NOR(n2789gat, n219gat)\r\nn772gat = NOR(n111gat, n2842gat)\r\nn142gat = NOR(n382gat, n326gat, n144gat)\r\nn40gat = NOR(n325gat, n383gat)\r\nn39gat = NOR(n383gat, n247gat)\r\nn451gat = NOR(n134gat, n372gat)\r\nn446gat = NOR(n219gat, n2781gat)\r\nn139gat = NOR(n253gat, n151gat, n254gat)\r\nn136gat = NOR(n253gat, n154gat)\r\nn391gat = NOR(n252gat, n468gat)\r\nn390gat = NOR(n469gat, n2877gat)\r\nn1083gat = NOR(n381gat, n375gat)\r\nn1077gat = NOR(n110gat, n2672gat)\r\nn140gat = NOR(n151gat, n253gat, n155gat)\r\nn242gat = NOR(n254gat, n241gat)\r\nn240gat = NOR(n255gat, n140gat)\r\nn871gat = NOR(n802gat, n375gat)\r\nn797gat = NOR(n110gat, n2734gat)\r\nn324gat = NOR(n255gat, n146gat, n241gat)\r\nn238gat = NOR(n147gat, n254gat)\r\nn237gat = NOR(n140gat, n147gat)\r\nn1082gat = NOR(n375gat, n380gat)\r\nn796gat = NOR(n2731gat, n110gat)\r\nn85gat = NOR(n17gat, n294gat, n637gat)\r\nn180gat = NOR(n286gat, n188gat, n287gat)\r\nn68gat = NOR(n85gat, n180gat)\r\nn186gat = NOR(n189gat, n287gat, n288gat)\r\nn357gat = NOR(n2726gat, n2860gat)\r\nn82gat = NOR(n16gat, n295gat, n637gat)\r\nn12gat = NOR(n186gat, n82gat)\r\nn1599gat = NOR(n1691gat, n336gat)\r\nn1613gat = NOR(n1544gat, n1698gat)\r\nn1756gat = NOR(n2512gat, n1769gat, n1773gat)\r\nn1586gat = NOR(n1869gat, n1683gat)\r\nn1755gat = NOR(n1769gat, n1773gat, n2512gat)\r\nn2538gat = NOR(n2620gat, n2625gat, n2488gat)\r\nn2483gat = NOR(n2537gat, n2482gat, n2486gat)\r\nn1391gat = NOR(n1513gat, n2442gat)\r\nn1471gat = NOR(n1334gat, n1858gat, n1604gat)\r\nn1469gat = NOR(n1858gat, n1608gat)\r\nn1472gat = NOR(n1476gat, n1471gat, n1469gat)\r\nn1927gat = NOR(n1790gat, n1635gat)\r\nn1470gat = NOR(n1472gat, n1747gat)\r\nn1402gat = NOR(n1858gat, n1393gat, n1604gat)\r\nn1400gat = NOR(n1674gat, n1403gat)\r\nn1567gat = NOR(n1634gat, n1735gat)\r\nn1399gat = NOR(n1806gat, n1338gat, n1584gat)\r\nn1564gat = NOR(n1584gat, n1719gat, n1790gat, n1576gat)\r\nn1600gat = NOR(n1685gat, n1427gat)\r\nn1519gat = NOR(n1584gat, n1339gat, n1600gat)\r\nn1397gat = NOR(n1519gat, n1401gat)\r\nn1398gat = NOR(n1455gat, n1397gat)\r\nn2008gat = NOR(n2012gat, n1774gat)\r\nn2005gat = NOR(n2002gat, n2857gat)\r\nn1818gat = NOR(n1823gat, n2005gat)\r\nn1759gat = NOR(n1818gat, n1935gat, n2765gat)\r\nn1686gat = NOR(n1774gat, n1869gat, n1684gat)\r\nn1533gat = NOR(n1524gat, n1403gat)\r\nn1863gat = NOR(n1991gat, n2283gat, n1989gat)\r\nn1860gat = NOR(n1988gat, n2216gat, n1862gat)\r\nn1915gat = NOR(n1859gat, n1919gat)\r\nn1510gat = NOR(n1584gat, n1460gat)\r\nn1800gat = NOR(n1635gat, n1919gat)\r\nn1459gat = NOR(n1595gat, n1454gat)\r\nn1458gat = NOR(n1510gat, n1459gat)\r\nn1532gat = NOR(n1677gat, n1458gat)\r\nn1467gat = NOR(n2289gat, n1468gat)\r\nn1466gat = NOR(n1392gat, n1461gat, n1396gat)\r\nn1531gat = NOR(n1507gat, n1477gat)\r\nn1593gat = NOR(n1551gat, n1310gat)\r\nn1602gat = NOR(n1594gat, n1587gat, n2989gat)\r\nn1761gat = NOR(n2985gat, n1602gat, n1681gat)\r\nn1760gat = NOR(n1681gat, n1602gat, n2985gat)\r\nn1721gat = NOR(n2442gat, n1690gat, n1978gat)\r\nn520gat = NOR(n374gat, n2862gat)\r\nn519gat = NOR(n2854gat, n374gat)\r\nn518gat = NOR(n520gat, n519gat)\r\nn418gat = NOR(n374gat, n2723gat)\r\nn411gat = NOR(n374gat, n2726gat)\r\nn522gat = NOR(n374gat, n2859gat)\r\nn516gat = NOR(n374gat, n2715gat)\r\nn410gat = NOR(n417gat, n413gat, n412gat, n406gat)\r\nn354gat = NOR(n411gat, n522gat)\r\nn355gat = NOR(n517gat, n410gat, n354gat)\r\nn408gat = NOR(n516gat, n407gat)\r\nn526gat = NOR(n2859gat, n740gat)\r\nn531gat = NOR(n740gat, n2854gat)\r\nn530gat = NOR(n2862gat, n740gat)\r\nn525gat = NOR(n526gat, n531gat, n530gat)\r\nn356gat = NOR(n2726gat, n740gat)\r\nn415gat = NOR(n2723gat, n740gat)\r\nn521gat = NOR(n740gat, n2715gat)\r\nn532gat = NOR(n527gat, n416gat, n528gat)\r\nn359gat = NOR(n290gat, n358gat)\r\nn420gat = NOR(n408gat, n359gat)\r\nn523gat = NOR(n522gat, n356gat)\r\nn634gat = NOR(n418gat, n521gat)\r\nn414gat = NOR(n411gat, n415gat)\r\nn635gat = NOR(n639gat, n634gat, n414gat)\r\nn1100gat = NOR(n1297gat, n1111gat)\r\nn630gat = NOR(n634gat, n523gat, n524gat)\r\nn994gat = NOR(n1112gat, n882gat)\r\nn629gat = NOR(n414gat, n634gat, n523gat)\r\nn989gat = NOR(n721gat, n741gat)\r\nn632gat = NOR(n414gat, n523gat, n633gat)\r\nn880gat = NOR(n926gat, n566gat)\r\nn636gat = NOR(n414gat, n633gat, n639gat)\r\nn801gat = NOR(n672gat, n670gat)\r\nn879gat = NOR(n2931gat, n801gat)\r\nn1003gat = NOR(n420gat, n879gat)\r\nn1255gat = NOR(n1123gat, n1225gat)\r\nn1012gat = NOR(n1007gat, n918gat)\r\nn905gat = NOR(n625gat, n1006gat)\r\nn1009gat = NOR(n1255gat, n2943gat)\r\nn409gat = NOR(n406gat, n407gat)\r\nn292gat = NOR(n415gat, n356gat)\r\nn291gat = NOR(n290gat, n292gat)\r\nn419gat = NOR(n409gat, n291gat)\r\nn902gat = NOR(n1009gat, n419gat)\r\nn1099gat = NOR(n1111gat, n1293gat)\r\nn998gat = NOR(n725gat, n741gat)\r\nn995gat = NOR(n823gat, n1112gat)\r\nn980gat = NOR(n875gat, n926gat)\r\nn1001gat = NOR(n420gat, n1002gat)\r\nn1175gat = NOR(n621gat, n1006gat)\r\nn1174gat = NOR(n845gat, n1007gat)\r\nn1243gat = NOR(n1281gat, n1123gat)\r\nn1171gat = NOR(n2960gat, n1243gat)\r\nn999gat = NOR(n419gat, n1171gat)\r\nn1244gat = NOR(n1123gat, n1134gat)\r\nn1323gat = NOR(n1007gat, n401gat)\r\nn1264gat = NOR(n1006gat, n617gat)\r\nn1265gat = NOR(n1244gat, n2969gat)\r\nn892gat = NOR(n419gat, n1265gat)\r\nn981gat = NOR(n926gat, n873gat)\r\nn890gat = NOR(n741gat, n702gat)\r\nn889gat = NOR(n1111gat, n1079gat)\r\nn886gat = NOR(n683gat, n1112gat)\r\nn891gat = NOR(n420gat, n888gat)\r\nn904gat = NOR(n1006gat, n490gat)\r\nn903gat = NOR(n1007gat, n397gat)\r\nn1254gat = NOR(n1123gat, n1044gat)\r\nn1008gat = NOR(n2942gat, n1254gat)\r\nn900gat = NOR(n419gat, n1008gat)\r\nn1152gat = NOR(n926gat, n1150gat)\r\nn1092gat = NOR(n1147gat, n1111gat)\r\nn997gat = NOR(n741gat, n393gat)\r\nn993gat = NOR(n1112gat, n698gat)\r\nn895gat = NOR(n420gat, n898gat)\r\nn1094gat = NOR(n1112gat, n583gat)\r\nn1093gat = NOR(n1111gat, n864gat)\r\nn988gat = NOR(n340gat, n741gat)\r\nn984gat = NOR(n926gat, n983gat)\r\nn1178gat = NOR(n420gat, n1179gat)\r\nn1267gat = NOR(n613gat, n1006gat)\r\nn1257gat = NOR(n1007gat, n274gat)\r\nn1253gat = NOR(n930gat, n1123gat)\r\nn1266gat = NOR(n2965gat, n1253gat)\r\nn1116gat = NOR(n419gat, n1266gat)\r\nn1375gat = NOR(n1006gat, n706gat)\r\nn1324gat = NOR(n164gat, n1007gat)\r\nn1200gat = NOR(n1120gat, n1123gat)\r\nn1172gat = NOR(n2961gat, n1200gat)\r\nn899gat = NOR(n419gat, n1172gat)\r\nn1091gat = NOR(n1111gat, n956gat)\r\nn1088gat = NOR(n1085gat, n926gat)\r\nn992gat = NOR(n815gat, n1112gat)\r\nn987gat = NOR(n741gat, n159gat)\r\nn896gat = NOR(n897gat, n420gat)\r\nn1262gat = NOR(n837gat, n1006gat)\r\nn1260gat = NOR(n1007gat, n278gat)\r\nn1251gat = NOR(n1123gat, n1071gat)\r\nn1259gat = NOR(n2967gat, n1251gat)\r\nn901gat = NOR(n419gat, n1259gat)\r\nn1098gat = NOR(n336gat, n741gat)\r\nn1090gat = NOR(n1111gat, n860gat)\r\nn986gat = NOR(n985gat, n926gat)\r\nn885gat = NOR(n579gat, n1112gat)\r\nn893gat = NOR(n894gat, n420gat)\r\nn1097gat = NOR(n270gat, n741gat)\r\nn1089gat = NOR(n1067gat, n1111gat)\r\nn1087gat = NOR(n926gat, n1084gat)\r\nn991gat = NOR(n1112gat, n679gat)\r\nn1177gat = NOR(n1180gat, n420gat)\r\nn1212gat = NOR(n1123gat, n1034gat)\r\nn1326gat = NOR(n1007gat, n282gat)\r\nn1261gat = NOR(n833gat, n1006gat)\r\nn1263gat = NOR(n1212gat, n2968gat)\r\nn1115gat = NOR(n1263gat, n419gat)\r\nn977gat = NOR(n670gat, n671gat)\r\nn631gat = NOR(n523gat, n633gat, n524gat)\r\nn1096gat = NOR(n819gat, n1112gat)\r\nn1095gat = NOR(n1240gat, n1111gat)\r\nn990gat = NOR(n841gat, n741gat)\r\nn979gat = NOR(n1601gat, n926gat)\r\nn978gat = NOR(n2944gat, n2945gat)\r\nn1004gat = NOR(n978gat, n420gat)\r\nn1199gat = NOR(n1123gat, n1284gat)\r\nn1176gat = NOR(n829gat, n1006gat)\r\nn1173gat = NOR(n1007gat, n1025gat)\r\nn1252gat = NOR(n1199gat, n2962gat)\r\nn1000gat = NOR(n419gat, n1252gat)\r\nn1029gat = NOR(n978gat, n455gat)\r\nn1028gat = NOR(n455gat, n879gat)\r\nn1031gat = NOR(n1002gat, n455gat)\r\nn1030gat = NOR(n455gat, n888gat)\r\nn1011gat = NOR(n455gat, n898gat)\r\nn1181gat = NOR(n455gat, n1179gat)\r\nn1010gat = NOR(n897gat, n455gat)\r\nn1005gat = NOR(n894gat, n455gat)\r\nn1182gat = NOR(n1180gat, n455gat)\r\nn1757gat = NOR(n1773gat, n1769gat)\r\nn1745gat = NOR(n1869gat, n1757gat)\r\nn73gat = NOR(n67gat, n2784gat)\r\nn70gat = NOR(n71gat, n2720gat)\r\nn77gat = NOR(n76gat, n2784gat)\r\nn13gat = NOR(n2720gat, n14gat)\r\n"
                );
             */

            // BBSSE
            ValidateTests(
                "# 11 inputs\r\n# 11 outputs\r\n# 85 inverters\r\n# 146 gates (146 NANDs)\r\nINPUT(g0)\r\nINPUT(g1)\r\nINPUT(g2)\r\nINPUT(g3)\r\nINPUT(g4)\r\nINPUT(g5)\r\nINPUT(g6)\r\nINPUT(g7)\r\nINPUT(g8)\r\nINPUT(g9)\r\nINPUT(g10)\r\nOUTPUT(g52)\r\nOUTPUT(g53)\r\nOUTPUT(g54)\r\nOUTPUT(g55)\r\nOUTPUT(g56)\r\nOUTPUT(g57)\r\nOUTPUT(g58)\r\nOUTPUT(g59)\r\nOUTPUT(g60)\r\nOUTPUT(g61)\r\nOUTPUT(g62)\r\ng11 = NOT(g115)\r\ng17 = NOT(g133)\r\ng18 = NOT(g134)\r\ng20 = NOT(g136)\r\ng21 = NOT(g137)\r\ng27 = NOT(g153)\r\ng31 = NOT(g160)\r\ng32 = NOT(g161)\r\ng33 = NOT(g162)\r\ng34 = NOT(g163)\r\ng36 = NOT(g164)\r\ng40 = NOT(g167)\r\ng42 = NOT(g170)\r\ng44 = NOT(g176)\r\ng45 = NOT(g177)\r\ng46 = NOT(g178)\r\ng47 = NOT(g179)\r\ng48 = NOT(g180)\r\ng50 = NOT(g183)\r\ng51 = NOT(g186)\r\ng53 = NOT(g189)\r\ng54 = NOT(g190)\r\ng56 = NOT(g196)\r\ng58 = NOT(g219)\r\ng63 = NOT(g0)\r\ng64 = NOT(g1)\r\ng65 = NOT(g2)\r\ng66 = NOT(g3)\r\ng67 = NOT(g4)\r\ng68 = NOT(g5)\r\ng69 = NOT(g6)\r\ng70 = NOT(g7)\r\ng71 = NOT(g8)\r\ng72 = NOT(g9)\r\ng73 = NOT(g10)\r\ng90 = NOT(g27)\r\ng94 = NOT(g31)\r\ng95 = NOT(g32)\r\ng96 = NOT(g33)\r\ng97 = NOT(g34)\r\ng107 = NOT(g44)\r\ng108 = NOT(g45)\r\ng109 = NOT(g46)\r\ng113 = NOT(g50)\r\ng114 = NOT(g51)\r\ng117 = NOT(g116)\r\ng127 = NOT(g126)\r\ng132 = NOT(g131)\r\ng140 = NOT(g139)\r\ng144 = NOT(g143)\r\ng147 = NOT(g146)\r\ng150 = NOT(g149)\r\ng155 = NOT(g154)\r\ng157 = NOT(g156)\r\ng159 = NOT(g158)\r\ng169 = NOT(g168)\r\ng173 = NOT(g172)\r\ng175 = NOT(g174)\r\ng182 = NOT(g181)\r\ng185 = NOT(g184)\r\ng192 = NOT(g191)\r\ng194 = NOT(g193)\r\ng198 = NOT(g197)\r\ng208 = NOT(g207)\r\ng210 = NOT(g209)\r\ng212 = NOT(g211)\r\ng214 = NOT(g213)\r\ng216 = NOT(g215)\r\ng218 = NOT(g217)\r\ng224 = NOT(g223)\r\ng226 = NOT(g225)\r\ng232 = NOT(g231)\r\ng234 = NOT(g233)\r\ng243 = NOT(g242)\r\ng249 = NOT(g248)\r\ng251 = NOT(g250)\r\ng253 = NOT(g252)\r\ng255 = NOT(g254)\r\ng257 = NOT(g256)\r\ng259 = NOT(g258)\r\ng261 = NOT(g260)\r\ng263 = NOT(g262)\r\ng265 = NOT(g264)\r\ng267 = NOT(g266)\r\ng272 = NOT(g271)\r\ng115 = NAND(g9, g21)\r\ng12 = NAND(g118, g119)\r\ng116 = NAND(g2, g3)\r\ng118 = NAND(g32, g117)\r\ng119 = NAND(g34, g35)\r\ng13 = NAND(g96, g120)\r\ng120 = NAND(g36, g38)\r\ng14 = NAND(g121, g122)\r\ng121 = NAND(g5, g33)\r\ng122 = NAND(g7, g73)\r\ng15 = NAND(g125, g127)\r\ng123 = NAND(g70, g46)\r\ng124 = NAND(g68, g33)\r\ng125 = NAND(g36, g39)\r\ng126 = NAND(g123, g124)\r\ng16 = NAND(g130, g132)\r\ng128 = NAND(g68, g8)\r\ng129 = NAND(g65, g7)\r\ng130 = NAND(g66, g7)\r\ng131 = NAND(g128, g129)\r\ng133 = NAND(g70, g72)\r\ng134 = NAND(g21, g25)\r\ng19 = NAND(g90, g135)\r\ng135 = NAND(g4, g47)\r\ng136 = NAND(g21, g26)\r\ng137 = NAND(g0, g64)\r\ng22 = NAND(g113, g140)\r\ng138 = NAND(g17, g47)\r\ng139 = NAND(g114, g138)\r\ng23 = NAND(g141, g142)\r\ng141 = NAND(g3, g32)\r\ng142 = NAND(g72, g42)\r\ng24 = NAND(g10, g150)\r\ng143 = NAND(g68, g7)\r\ng145 = NAND(g72, g144)\r\ng146 = NAND(g4, g8)\r\ng148 = NAND(g72, g147)\r\ng149 = NAND(g145, g148)\r\ng25 = NAND(g151, g97)\r\ng151 = NAND(g67, g47)\r\ng26 = NAND(g152, g67)\r\ng152 = NAND(g65, g71)\r\ng153 = NAND(g0, g1)\r\ng28 = NAND(g94, g108)\r\ng29 = NAND(g94, g108)\r\ng30 = NAND(g94, g108)\r\ng154 = NAND(g5, g70)\r\ng156 = NAND(g71, g9)\r\ng158 = NAND(g73, g157)\r\ng160 = NAND(g155, g159)\r\ng161 = NAND(g7, g10)\r\ng162 = NAND(g8, g10)\r\ng163 = NAND(g8, g73)\r\ng35 = NAND(g67, g66)\r\ng164 = NAND(g66, g67)\r\ng37 = NAND(g165, g166)\r\ng165 = NAND(g9, g34)\r\ng166 = NAND(g9, g32)\r\ng38 = NAND(g71, g95)\r\ng39 = NAND(g97, g109)\r\ng167 = NAND(g9, g46)\r\ng41 = NAND(g7, g169)\r\ng168 = NAND(g66, g4)\r\ng170 = NAND(g7, g71)\r\ng43 = NAND(g171, g64)\r\ng171 = NAND(g72, g73)\r\ng172 = NAND(g0, g71)\r\ng174 = NAND(g73, g17)\r\ng176 = NAND(g175, g173)\r\ng177 = NAND(g7, g8)\r\ng178 = NAND(g71, g10)\r\ng179 = NAND(g2, g10)\r\ng180 = NAND(g68, g9)\r\ng49 = NAND(g0, g182)\r\ng181 = NAND(g71, g64)\r\ng183 = NAND(g72, g33)\r\ng184 = NAND(g5, g72)\r\ng186 = NAND(g32, g185)\r\ng52 = NAND(g187, g188)\r\ng187 = NAND(g11, g12)\r\ng188 = NAND(g21, g22)\r\ng189 = NAND(g11, g13)\r\ng190 = NAND(g69, g44)\r\ng55 = NAND(g195, g107)\r\ng191 = NAND(g66, g4)\r\ng193 = NAND(g11, g32)\r\ng195 = NAND(g194, g192)\r\ng196 = NAND(g27, g28)\r\ng57 = NAND(g218, g216)\r\ng197 = NAND(g1, g70)\r\ng199 = NAND(g8, g198)\r\ng200 = NAND(g17, g27)\r\ng201 = NAND(g1, g10)\r\ng202 = NAND(g63, g10)\r\ng203 = NAND(g63, g8)\r\ng204 = NAND(g63, g7)\r\ng205 = NAND(g36, g37)\r\ng206 = NAND(g42, g43)\r\ng207 = NAND(g199, g200)\r\ng209 = NAND(g201, g202)\r\ng211 = NAND(g203, g204)\r\ng213 = NAND(g205, g206)\r\ng215 = NAND(g214, g212)\r\ng217 = NAND(g210, g208)\r\ng219 = NAND(g63, g31)\r\ng59 = NAND(g222, g224)\r\ng220 = NAND(g11, g14)\r\ng221 = NAND(g21, g23)\r\ng222 = NAND(g27, g29)\r\ng223 = NAND(g220, g221)\r\ng60 = NAND(g234, g232)\r\ng225 = NAND(g67, g21)\r\ng227 = NAND(g50, g226)\r\ng228 = NAND(g11, g15)\r\ng229 = NAND(g17, g18)\r\ng230 = NAND(g27, g30)\r\ng231 = NAND(g227, g228)\r\ng233 = NAND(g229, g230)\r\ng61 = NAND(g261, g267)\r\ng235 = NAND(g1, g42)\r\ng236 = NAND(g1, g10)\r\ng237 = NAND(g63, g10)\r\ng238 = NAND(g63, g8)\r\ng239 = NAND(g63, g7)\r\ng240 = NAND(g4, g50)\r\ng241 = NAND(g9, g34)\r\ng242 = NAND(g7, g9)\r\ng244 = NAND(g73, g243)\r\ng245 = NAND(g17, g19)\r\ng246 = NAND(g40, g41)\r\ng247 = NAND(g48, g49)\r\ng248 = NAND(g235, g236)\r\ng250 = NAND(g237, g238)\r\ng252 = NAND(g239, g240)\r\ng254 = NAND(g114, g241)\r\ng256 = NAND(g244, g245)\r\ng258 = NAND(g246, g247)\r\ng260 = NAND(g259, g257)\r\ng262 = NAND(g255, g253)\r\ng264 = NAND(g251, g249)\r\ng266 = NAND(g265, g263)\r\ng62 = NAND(g270, g272)\r\ng268 = NAND(g11, g16)\r\ng269 = NAND(g17, g20)\r\ng270 = NAND(g21, g24)\r\ng271 = NAND(g268, g269)\r\n\r\n"
                );

            // s510
            ValidateTests(
                "# s510\r\n# 19 inputs\r\n# 7 outputs\r\n# 6 D-type flipflops\r\n# 32 inverters\r\n# 179 gates (34 ANDs + 61 NANDs + 29 ORs + 55 NORs)\r\nINPUT(john)\r\nINPUT(cnt13)\r\nINPUT(cnt21)\r\nINPUT(cnt284)\r\nINPUT(pcnt6)\r\nINPUT(cnt261)\r\nINPUT(cnt44)\r\nINPUT(pcnt12)\r\nINPUT(pcnt17)\r\nINPUT(cnt591)\r\nINPUT(cnt45)\r\nINPUT(cnt567)\r\nINPUT(pcnt27)\r\nINPUT(cnt283)\r\nINPUT(cnt272)\r\nINPUT(cnt10)\r\nINPUT(cnt511)\r\nINPUT(pcnt241)\r\nINPUT(cnt509)\r\nOUTPUT(csm)\r\nOUTPUT(pclr)\r\nOUTPUT(pc)\r\nOUTPUT(cclr)\r\nOUTPUT(vsync)\r\nOUTPUT(cblank)\r\nOUTPUT(csync)\r\nst_5 = DFF(I2)\r\nst_4 = DFF(I3)\r\nst_3 = DFF(I4)\r\nst_2 = DFF(I5)\r\nst_1 = DFF(I6)\r\nst_0 = DFF(I7)\r\nI68 = NOT(cnt44)\r\nI67 = NOT(cnt261)\r\nI78 = NOT(cnt511)\r\nI73 = NOT(cnt567)\r\nI61 = NOT(st_0)\r\nI60 = NOT(st_1)\r\nI59 = NOT(st_2)\r\nI58 = NOT(st_3)\r\nI57 = NOT(st_4)\r\nI56 = NOT(st_5)\r\nI69 = NOT(pcnt12)\r\nI70 = NOT(pcnt17)\r\nI554 = NOT(I555)\r\nI591 = NOT(I590)\r\nI594 = NOT(I595)\r\nI546 = NOT(I547)\r\nI667 = NOT(I666)\r\nI475 = NOT(I474)\r\nI798 = NOT(I799)\r\nI495 = NOT(I494)\r\nI467 = NOT(I466)\r\nI462 = NOT(I463)\r\nI130 = NOT(I131)\r\nI567 = NOT(I566)\r\nI483 = NOT(I482)\r\nI530 = NOT(I531)\r\nI486 = NOT(I487)\r\nI607 = NOT(I606)\r\nI778 = NOT(I779)\r\nI347 = NOT(I346)\r\nI204 = NOT(I205)\r\nI216 = NOT(I217)\r\nI936_2 = AND(cnt272, st_2)\r\nI946_1 = AND(cnt10, st_5)\r\nI946_2 = AND(john, st_4)\r\nI936_1 = AND(cnt591, I59)\r\nI1089_1 = AND(I59, I555)\r\nI1044_1 = AND(I70, cnt284)\r\nI943_1 = AND(I578, st_3)\r\nI1102_2 = AND(I56, I675)\r\nI1059_1 = AND(st_5, I671)\r\nI1071_1 = AND(I551, I671)\r\nI1106_1 = AND(I60, I551)\r\nI1123_1 = AND(I551, I663)\r\nI967_1 = AND(I498, I57)\r\nI1055_1 = AND(I570, st_0, st_2)\r\nI1062_1 = AND(I535, I598)\r\nI1120_1 = AND(I795, I618)\r\nI1116_1 = AND(I95, I603)\r\nI950_2 = AND(I463, cnt283)\r\nI950_1 = AND(I455, cnt45)\r\nI1102_1 = AND(st_5, I455)\r\nI954_2 = AND(cnt45, I587, I104)\r\nI1081_1 = AND(I543, I490, I58)\r\nI1106_2 = AND(I57, I543)\r\nI940_1 = AND(I495, I60)\r\nI1077_1 = AND(I104, I539)\r\nI988_1 = AND(I694, I698)\r\nI1085_1 = AND(I787, I130)\r\nI954_1 = AND(st_5, cnt509, I567)\r\nI1081_2 = AND(st_2, I483)\r\nI1116_2 = AND(I61, I230)\r\nI1065_1 = AND(I475, I232)\r\nI1113_1 = AND(st_4, I234)\r\nI1055_2 = AND(I58, I204)\r\nI1085_2 = AND(I61, I216)\r\nI1038_1 = OR(cnt21, st_0)\r\nI985_1 = OR(pcnt27, I73)\r\nI914_1 = OR(I60, I61)\r\nI1068_1 = OR(st_4, I590)\r\nI933_1 = OR(I57, I58)\r\nI958_1 = OR(I57, I59)\r\nI958_2 = OR(cnt284, I642)\r\nI924_2 = OR(I474, I666)\r\nI903_2 = OR(I58, I478)\r\nI1092_1 = OR(st_4, I478)\r\nI917_1 = OR(I458, I494, st_5)\r\nI921_1 = OR(I494, I570)\r\nI909_1 = OR(I466, I627)\r\nI962_2 = OR(I466, I78)\r\nI1095_1 = OR(cnt13, I506)\r\nI1099_1 = OR(I506, I209)\r\nI917_2 = OR(I482, I590)\r\nI982_1 = OR(I559, I487)\r\nI1074_1 = OR(I475, I546)\r\nI1095_2 = OR(I475, I578)\r\nI970_1 = OR(I495, I603)\r\nI900_1 = OR(I56, I207)\r\nI903_1 = OR(I606, I742)\r\nI962_1 = OR(I462, I73)\r\nI975_1 = OR(I531, I483)\r\nI978_1 = OR(I483, I747)\r\nI928_1 = OR(st_0, I530)\r\nI1110_1 = OR(I61, I530)\r\nI924_1 = OR(st_0, I731)\r\nI590 = NAND(st_1, st_2)\r\nI458 = NAND(st_3, st_1)\r\nI490 = NAND(cnt284, pcnt17)\r\nI578 = NAND(I61, st_1)\r\nI666 = NAND(I61, st_3)\r\nI658 = NAND(st_2, I58)\r\nI814 = NAND(I58, cnt21, I595)\r\nI574 = NAND(st_3, I57)\r\nI498 = NAND(I511, I587)\r\nI638 = NAND(I511, st_0)\r\nI642 = NAND(I739, st_2)\r\nI474 = NAND(I56, I57)\r\nI570 = NAND(I458, I56)\r\nI598 = NAND(cnt13, I56)\r\nI742 = NAND(I56, st_0)\r\nI618 = NAND(I69, cnt44)\r\nI478 = NAND(I547, I739)\r\nI494 = NAND(I57, I547)\r\nI774 = NAND(st_5, I547, I458)\r\nI466 = NAND(st_3, I535)\r\nI506 = NAND(I535, I58)\r\nI566 = NAND(I663, st_2)\r\nI104 = NAND(I933_1, I56)\r\nI482 = NAND(I58, I551)\r\nI390 = NAND(st_0, I583)\r\nI834 = NAND(I1068_1, I642)\r\nI698 = NAND(I563, I59)\r\nI694 = NAND(I795, I57)\r\nI274 = NAND(I56, I667)\r\nI606 = NAND(I95, I57)\r\nI346 = NAND(I985_1, I463)\r\nI810 = NAND(pcnt6, cnt284, I455)\r\nI782 = NAND(I67, I559, I675)\r\nI230 = NAND(I958_1, I958_2)\r\nI870 = NAND(I1092_1, I566)\r\nI298 = NAND(I539, I574)\r\nI710 = NAND(I467, cnt10)\r\nI714 = NAND(I1038_1, I567)\r\npclr = NAND(I917_1, I917_2)\r\nI326 = NAND(I982_1, I61)\r\npc = NAND(I921_1, I837)\r\nI270 = NAND(st_3, I615)\r\nI838 = NAND(I1074_1, I530)\r\nI872 = NAND(I1095_1, I1095_2, I774)\r\nI266 = NAND(I970_1, st_1)\r\nI232 = NAND(I962_1, I962_2, I810)\r\ncclr = NAND(I486, I877, I546, I390)\r\nI234 = NAND(I213, I814, I710, I714)\r\nI278 = NAND(I975_1, I60)\r\nI282 = NAND(I978_1, st_1)\r\nI3 = NAND(I903_1, I903_2, I823)\r\nvsync = NAND(I914_1, I855, I867)\r\ncblank = NAND(I928_1, I841)\r\nI4 = NAND(I278, I274, I270, I266)\r\nI884 = NAND(I1110_1, I861, I326)\r\nI5 = NAND(I282, I889, I827, I298)\r\ncsync = NAND(I924_1, I924_2, I881)\r\nI6 = NAND(I909_1, I899, I895)\r\nI2 = NAND(I900_1, I821)\r\nI874 = NAND(I1099_1, I863, I831)\r\nI7 = NAND(I778, I782, I887)\r\nI555 = NOR(st_0, st_1)\r\nI587 = NOR(st_1, st_2)\r\nI595 = NOR(st_0, st_2)\r\nI511 = NOR(st_3, st_5)\r\nI739 = NOR(st_5, st_1)\r\nI627 = NOR(pcnt241, I78)\r\nI547 = NOR(I61, st_2)\r\nI675 = NOR(I61, st_1)\r\nI535 = NOR(I590, st_0)\r\nI671 = NOR(I458, I59)\r\nI663 = NOR(st_1, I58)\r\nI551 = NOR(I61, I57)\r\nI583 = NOR(I511, I60)\r\nI603 = NOR(I61, I56)\r\nI799 = NOR(I56, I58, I59)\r\nI209 = NOR(I946_1, I946_2)\r\nI563 = NOR(I578, I56)\r\nI795 = NOR(st_3, st_2, I578)\r\nI95 = NOR(I587, I591)\r\nI463 = NOR(I458, I594)\r\nI131 = NOR(I936_1, I936_2)\r\nI455 = NOR(I554, I658)\r\nI559 = NOR(I658, I56)\r\nI531 = NOR(I574, I59)\r\nI787 = NOR(I554, st_5, I574)\r\nI487 = NOR(st_4, I498)\r\nI543 = NOR(I742, I590)\r\nI747 = NOR(I638, I1044_1)\r\nI539 = NOR(I546, I60)\r\nI207 = NOR(I595, I943_1)\r\nI779 = NOR(I95, st_4, I638)\r\nI259 = NOR(st_0, I967_1)\r\nI837 = NOR(I487, I1071_1)\r\nI867 = NOR(I834, I1089_1)\r\nI615 = NOR(I475, st_2)\r\nI827 = NOR(I531, I1062_1)\r\ncsm = NOR(I555, I798)\r\nI213 = NOR(I950_1, I950_2)\r\nI877 = NOR(I1102_1, I1102_2, I551)\r\nI823 = NOR(I259, I1059_1)\r\nI855 = NOR(I615, st_3)\r\nI205 = NOR(I563, I940_1)\r\nI841 = NOR(I799, I1077_1)\r\nI371 = NOR(I68, I988_1)\r\nI731 = NOR(I583, I607)\r\nI217 = NOR(I954_1, I954_2)\r\nI861 = NOR(I1081_1, I1081_2)\r\nI889 = NOR(I1116_1, I1116_2, I870)\r\nI881 = NOR(I1106_1, I1106_2, I838)\r\nI899 = NOR(I872, I347, I1123_1)\r\nI831 = NOR(I371, I1065_1)\r\nI895 = NOR(I884, I1120_1)\r\nI821 = NOR(I1055_1, I1055_2)\r\nI863 = NOR(I1085_1, I1085_2)\r\nI887 = NOR(I874, I1113_1)\r\n"
                );

            // part of Iscas 89 s27 circuit
            ValidateTests(
                "INPUT(g0)\r\nINPUT(g3)\r\nINPUT(g6)\r\n\r\nOUTPUT(g10)\r\n\r\ng8 = AND(g0, g6)\r\ng16 = OR(g8, g3)\r\ng10 = NOR(g16, g0)",
                0, 3, 1);

            // bbara
            ValidateTests(
                "# 8 inputs\r\n# 6 outputs\r\n# 45 inverters\r\n# 74 gates (74 NANDs)\r\n\r\nINPUT(g0)\r\nINPUT(g1)\r\nINPUT(g2)\r\nINPUT(g3)\r\nINPUT(g4)\r\nINPUT(g5)\r\nINPUT(g6)\r\nINPUT(g7)\r\nOUTPUT(g22)\r\nOUTPUT(g23)\r\nOUTPUT(g24)\r\nOUTPUT(g25)\r\nOUTPUT(g26)\r\nOUTPUT(g27)\r\ng8 = NOT(g50)\r\ng12 = NOT(g78)\r\ng14 = NOT(g84)\r\ng17 = NOT(g87)\r\ng19 = NOT(g96)\r\ng20 = NOT(g99)\r\ng21 = NOT(g100)\r\ng22 = NOT(g101)\r\ng23 = NOT(g102)\r\ng28 = NOT(g0)\r\ng29 = NOT(g1)\r\ng30 = NOT(g2)\r\ng31 = NOT(g3)\r\ng32 = NOT(g4)\r\ng33 = NOT(g5)\r\ng34 = NOT(g6)\r\ng35 = NOT(g7)\r\ng40 = NOT(g12)\r\ng48 = NOT(g20)\r\ng52 = NOT(g51)\r\ng56 = NOT(g55)\r\ng61 = NOT(g60)\r\ng64 = NOT(g63)\r\ng67 = NOT(g66)\r\ng70 = NOT(g69)\r\ng73 = NOT(g72)\r\ng75 = NOT(g74)\r\ng77 = NOT(g76)\r\ng81 = NOT(g80)\r\ng83 = NOT(g82)\r\ng86 = NOT(g85)\r\ng89 = NOT(g88)\r\ng91 = NOT(g90)\r\ng95 = NOT(g94)\r\ng98 = NOT(g97)\r\ng107 = NOT(g106)\r\ng114 = NOT(g113)\r\ng116 = NOT(g115)\r\ng118 = NOT(g117)\r\ng124 = NOT(g123)\r\ng126 = NOT(g125)\r\ng132 = NOT(g131)\r\ng134 = NOT(g133)\r\ng136 = NOT(g135)\r\ng138 = NOT(g137)\r\n\r\ng50 = NAND(g2, g3)\r\ng9 = NAND(g53, g54)\r\ng51 = NAND(g1, g33)\r\ng53 = NAND(g21, g52)\r\ng54 = NAND(g0, g19)\r\ng10 = NAND(g57, g58)\r\ng55 = NAND(g32, g33)\r\ng57 = NAND(g20, g56)\r\ng58 = NAND(g0, g29)\r\ng11 = NAND(g73, g77)\r\ng59 = NAND(g14, g17)\r\ng60 = NAND(g28, g4)\r\ng62 = NAND(g35, g61)\r\ng63 = NAND(g0, g5)\r\ng65 = NAND(g6, g64)\r\ng66 = NAND(g1, g6)\r\ng68 = NAND(g35, g67)\r\ng69 = NAND(g1, g33)\r\ng71 = NAND(g34, g70)\r\ng72 = NAND(g59, g62)\r\ng74 = NAND(g65, g68)\r\ng76 = NAND(g71, g75)\r\ng78 = NAND(g5, g21)\r\ng13 = NAND(g3, g81)\r\ng79 = NAND(g0, g29)\r\ng80 = NAND(g79, g2)\r\ng82 = NAND(g5, g34)\r\ng84 = NAND(g35, g83)\r\ng15 = NAND(g29, g86)\r\ng85 = NAND(g2, g3)\r\ng16 = NAND(g29, g0)\r\ng87 = NAND(g28, g29)\r\ng18 = NAND(g92, g93)\r\ng88 = NAND(g5, g34)\r\ng90 = NAND(g7, g8)\r\ng92 = NAND(g91, g89)\r\ng93 = NAND(g4, g35)\r\ng94 = NAND(g29, g6)\r\ng96 = NAND(g35, g95)\r\ng97 = NAND(g1, g34)\r\ng99 = NAND(g7, g98)\r\ng100 = NAND(g6, g7)\r\ng101 = NAND(g14, g15)\r\ng102 = NAND(g12, g13)\r\ng24 = NAND(g105, g107)\r\ng103 = NAND(g31, g4)\r\ng104 = NAND(g30, g4)\r\ng105 = NAND(g17, g18)\r\ng106 = NAND(g103, g104)\r\ng25 = NAND(g114, g118)\r\ng108 = NAND(g29, g12)\r\ng109 = NAND(g30, g5)\r\ng110 = NAND(g31, g5)\r\ng111 = NAND(g8, g9)\r\ng112 = NAND(g14, g16)\r\ng113 = NAND(g108, g109)\r\ng115 = NAND(g110, g111)\r\ng117 = NAND(g112, g116)\r\ng26 = NAND(g126, g124)\r\ng119 = NAND(g5, g19)\r\ng120 = NAND(g30, g6)\r\ng121 = NAND(g31, g6)\r\ng122 = NAND(g8, g10)\r\ng123 = NAND(g119, g120)\r\ng125 = NAND(g121, g122)\r\ng27 = NAND(g132, g138)\r\ng127 = NAND(g17, g21)\r\ng128 = NAND(g31, g7)\r\ng129 = NAND(g30, g7)\r\ng130 = NAND(g8, g11)\r\ng131 = NAND(g127, g48)\r\ng133 = NAND(g40, g128)\r\ng135 = NAND(g129, g130)\r\ng137 = NAND(g136, g134)\r\n\r\n"
                );

            // Iscas 89 circuits

            // s208.1
            ValidateTests(
                "# s208.1\r\n# 10 inputs\r\n# 1 outputs\r\n# 8 D-type flipflops\r\n# 38 inverters\r\n# 66 gates (21 ANDs + 15 NANDs + 14 ORs + 16 NORs)\r\n\r\nINPUT(P.0)\r\nINPUT(C.8)\r\nINPUT(C.7)\r\nINPUT(C.6)\r\nINPUT(C.5)\r\nINPUT(C.4)\r\nINPUT(C.3)\r\nINPUT(C.2)\r\nINPUT(C.1)\r\nINPUT(C.0)\r\n\r\nOUTPUT(Z)\r\n\r\nX.4 = DFF(I12)\r\nX.3 = DFF(I13)\r\nX.2 = DFF(I14)\r\nX.1 = DFF(I15)\r\nX.8 = DFF(I110)\r\nX.7 = DFF(I111)\r\nX.6 = DFF(I112)\r\nX.5 = DFF(I113)\r\n\r\nI73.1 = NOT(I69)\r\nI73.2 = NOT(X.3)\r\nI7.1 = NOT(I66)\r\nI7.2 = NOT(X.2)\r\nI88.1 = NOT(X.1)\r\nI88.2 = NOT(P.0)\r\nI48 = NOT(P.0)\r\nI49 = NOT(X.4)\r\nI50 = NOT(X.3)\r\nI68 = NOT(I69)\r\nI105.1 = NOT(I163)\r\nI105.2 = NOT(X.6)\r\nI182.1 = NOT(X.5)\r\nI182.2 = NOT(I1.2)\r\nI148 = NOT(X.7)\r\nI149 = NOT(X.6)\r\nI161 = NOT(I162)\r\nI164 = NOT(I163)\r\nI212 = NOT(P.0)\r\nI213 = NOT(X.1)\r\nI214 = NOT(X.2)\r\nI215 = NOT(X.3)\r\nI216 = NOT(X.4)\r\nI225 = NOT(I224)\r\nI240 = NOT(P.0)\r\nI241 = NOT(X.5)\r\nI242 = NOT(X.6)\r\nI243 = NOT(X.7)\r\nI244 = NOT(X.8)\r\nI252 = NOT(I251)\r\nI282 = NOT(P.2)\r\nI283 = NOT(P.3)\r\nI286 = NOT(C.2)\r\nI287 = NOT(C.3)\r\nI306 = NOT(P.6)\r\nI307 = NOT(P.7)\r\nI310 = NOT(C.6)\r\nI311 = NOT(C.7)\r\n\r\nI73.3 = AND(I69, I73.2)\r\nI73.4 = AND(X.3, I73.1)\r\nI7.3 = AND(I66, I7.2)\r\nI7.4 = AND(X.2, I7.1)\r\nI88.3 = AND(X.1, I88.2)\r\nI88.4 = AND(P.0, I88.1)\r\nI105.3 = AND(I163, I105.2)\r\nI105.4 = AND(X.6, I105.1)\r\nI182.3 = AND(X.5, I182.2)\r\nI182.4 = AND(I1.2, I182.1)\r\nI191.1 = AND(I164, X.6)\r\nI1.2 = AND(I2.1, P.0)\r\nP.5 = AND(I209.1, I205.2)\r\nP.6 = AND(I209.1, I206.2)\r\nP.7 = AND(I209.1, I207.2)\r\nP.8 = AND(I209.1, I208.2)\r\nI295.1 = AND(P.1, C.1)\r\nI295.2 = AND(P.0, C.0)\r\nI319.1 = AND(P.5, C.5)\r\nI319.2 = AND(P.4, C.4)\r\nI270.3 = AND(P.8, C.8)\r\n\r\nI70.1 = OR(I68, X.4, I50)\r\nI13 = OR(I73.3, I73.4)\r\nI15 = OR(I88.3, I88.4)\r\nI95.1 = OR(I64, I50, I48)\r\nI167.1 = OR(I165, X.8, I148)\r\nI170.1 = OR(I165, X.7)\r\nI113 = OR(I182.3, I182.4)\r\nI188.1 = OR(I163, I149, I148)\r\nI291.1 = OR(I283, I287)\r\nI291.2 = OR(I282, I286)\r\nI315.1 = OR(I307, I311)\r\nI315.2 = OR(I306, I310)\r\nI270.2 = OR(I269.1, I269.2)\r\nZ = OR(I270.2, I270.3)\r\n\r\nI12 = NAND(I70.1, I62)\r\nI62 = NAND(I95.1, X.4)\r\nI64 = NAND(X.1, X.2)\r\nI66 = NAND(X.1, P.0)\r\nI110 = NAND(I167.1, I159)\r\nI111 = NAND(I170.1, I161)\r\nI159 = NAND(I188.1, X.8)\r\nI163 = NAND(X.5, I1.2)\r\nI165 = NAND(I164, X.6)\r\nI222 = NAND(I225, I214)\r\nI224 = NAND(I213, P.0)\r\nI249 = NAND(I252, I242)\r\nI251 = NAND(I241, P.0)\r\nI269.1 = NAND(I291.1, I291.2, I290)\r\nI269.2 = NAND(I315.1, I315.2, I314)\r\n\r\nI14 = NOR(I7.3, I7.4)\r\nI2.1 = NOR(I64, I49, I50)\r\nI69 = NOR(I64, I48)\r\nI112 = NOR(I105.3, I105.4)\r\nI162 = NOR(I148, I191.1)\r\nP.1 = NOR(I212, I213)\r\nP.2 = NOR(I214, I224)\r\nP.3 = NOR(I215, I222)\r\nP.4 = NOR(X.3, I222, I216)\r\nI209.1 = NOR(X.4, X.2, X.3, X.1)\r\nI205.2 = NOR(I240, I241)\r\nI206.2 = NOR(I242, I251)\r\nI207.2 = NOR(I243, I249)\r\nI208.2 = NOR(X.7, I249, I244)\r\nI290 = NOR(I295.1, I295.2)\r\nI314 = NOR(I319.1, I319.2)\r\n\r\n"
                );

            // s298
            ValidateTests(
                "# s298\r\n# 3 inputs\r\n# 6 outputs\r\n# 14 D-type flipflops\r\n# 44 inverters\r\n# 75 gates (31 ANDs + 9 NANDs + 16 ORs + 19 NORs)\r\nINPUT(G0)\r\nINPUT(G1)\r\nINPUT(G2)\r\nOUTPUT(G117)\r\nOUTPUT(G132)\r\nOUTPUT(G66)\r\nOUTPUT(G118)\r\nOUTPUT(G133)\r\nOUTPUT(G67)\r\nG10 = DFF(G29)\r\nG11 = DFF(G30)\r\nG12 = DFF(G34)\r\nG13 = DFF(G39)\r\nG14 = DFF(G44)\r\nG15 = DFF(G56)\r\nG16 = DFF(G86)\r\nG17 = DFF(G92)\r\nG18 = DFF(G98)\r\nG19 = DFF(G102)\r\nG20 = DFF(G107)\r\nG21 = DFF(G113)\r\nG22 = DFF(G119)\r\nG23 = DFF(G125)\r\nG28 = NOT(G130)\r\nG38 = NOT(G10)\r\nG40 = NOT(G13)\r\nG45 = NOT(G12)\r\nG46 = NOT(G11)\r\nG50 = NOT(G14)\r\nG51 = NOT(G23)\r\nG54 = NOT(G11)\r\nG55 = NOT(G13)\r\nG59 = NOT(G12)\r\nG60 = NOT(G22)\r\nG64 = NOT(G15)\r\nI155 = NOT(G16)\r\nG66 = NOT(I155)\r\nI158 = NOT(G17)\r\nG67 = NOT(I158)\r\nG76 = NOT(G10)\r\nG82 = NOT(G11)\r\nG87 = NOT(G16)\r\nG91 = NOT(G12)\r\nG93 = NOT(G17)\r\nG96 = NOT(G14)\r\nG99 = NOT(G18)\r\nG103 = NOT(G13)\r\nG108 = NOT(G112)\r\nG114 = NOT(G21)\r\nI210 = NOT(G18)\r\nG117 = NOT(I210)\r\nI213 = NOT(G19)\r\nG118 = NOT(I213)\r\nG120 = NOT(G124)\r\nG121 = NOT(G22)\r\nI221 = NOT(G2)\r\nG124 = NOT(I221)\r\nG126 = NOT(G131)\r\nG127 = NOT(G23)\r\nI229 = NOT(G0)\r\nG130 = NOT(I229)\r\nI232 = NOT(G1)\r\nG131 = NOT(I232)\r\nI235 = NOT(G20)\r\nG132 = NOT(I235)\r\nI238 = NOT(G21)\r\nG133 = NOT(I238)\r\nG26 = AND(G28, G50)\r\nG27 = AND(G51, G28)\r\nG31 = AND(G10, G45, G13)\r\nG32 = AND(G10, G11)\r\nG33 = AND(G38, G46)\r\nG35 = AND(G10, G11, G12)\r\nG36 = AND(G38, G45)\r\nG37 = AND(G46, G45)\r\nG42 = AND(G40, G41)\r\nG48 = AND(G45, G46, G10, G47)\r\nG49 = AND(G50, G51, G52)\r\nG57 = AND(G59, G11, G60, G61)\r\nG58 = AND(G64, G65)\r\nG62 = AND(G59, G11, G60, G61)\r\nG63 = AND(G64, G65)\r\nG74 = AND(G12, G14, G19)\r\nG75 = AND(G82, G91, G14)\r\nG88 = AND(G14, G87)\r\nG89 = AND(G103, G96)\r\nG90 = AND(G91, G103)\r\nG94 = AND(G93, G13)\r\nG95 = AND(G96, G13)\r\nG100 = AND(G99, G14, G12)\r\nG105 = AND(G103, G108, G104)\r\nG110 = AND(G108, G109)\r\nG111 = AND(G10, G112)\r\nG115 = AND(G114, G14)\r\nG122 = AND(G120, G121)\r\nG123 = AND(G124, G22)\r\nG128 = AND(G126, G127)\r\nG129 = AND(G131, G23)\r\nG24 = OR(G38, G46, G45, G40)\r\nG25 = OR(G38, G11, G12)\r\nG68 = OR(G11, G12, G13, G96)\r\nG69 = OR(G103, G18)\r\nG70 = OR(G103, G14)\r\nG71 = OR(G82, G12, G13)\r\nG72 = OR(G91, G20)\r\nG73 = OR(G103, G20)\r\nG77 = OR(G112, G103, G96, G19)\r\nG78 = OR(G108, G76)\r\nG79 = OR(G103, G14)\r\nG80 = OR(G11, G14)\r\nG81 = OR(G12, G13)\r\nG83 = OR(G11, G12, G13, G96)\r\nG84 = OR(G82, G91, G14)\r\nG85 = OR(G91, G96, G17)\r\nG41 = NAND(G12, G11, G10)\r\nG43 = NAND(G24, G25, G28)\r\nG52 = NAND(G13, G45, G46, G10)\r\nG65 = NAND(G59, G54, G22, G61)\r\nG97 = NAND(G83, G84, G85, G108)\r\nG101 = NAND(G68, G69, G70, G108)\r\nG106 = NAND(G77, G78)\r\nG109 = NAND(G71, G72, G73, G14)\r\nG116 = NAND(G79, G80, G81, G108)\r\nG29 = NOR(G10, G130)\r\nG30 = NOR(G31, G32, G33, G130)\r\nG34 = NOR(G35, G36, G37, G130)\r\nG39 = NOR(G42, G43)\r\nG44 = NOR(G48, G49, G53)\r\nG47 = NOR(G50, G40)\r\nG53 = NOR(G26, G27)\r\nG56 = NOR(G57, G58, G130)\r\nG61 = NOR(G14, G55)\r\nG86 = NOR(G88, G89, G90, G112)\r\nG92 = NOR(G94, G95, G97)\r\nG98 = NOR(G100, G101)\r\nG102 = NOR(G105, G106)\r\nG104 = NOR(G74, G75)\r\nG107 = NOR(G110, G111)\r\nG112 = NOR(G62, G63)\r\nG113 = NOR(G115, G116)\r\nG119 = NOR(G122, G123, G130)\r\nG125 = NOR(G128, G129, G130)\r\n"
                );
        }

        /// <summary>
        /// Helper method for test checking.
        /// </summary>
        /// <param name="circuitStr"></param>
        /// <param name="robustPathTests"></param>
        /// <param name="nonRobustPathTests"></param>
        /// <param name="falsePathTests"></param>
        private static void ValidateTests(string circuitStr, int robustPathTests = -1, int nonRobustPathTests = -1, int falsePathTests = -1)
        {
            // Arange

            // reading circuit
            var circuitReader = new CircuitReaderPlain { Input = circuitStr };
            circuitReader.Read();
            var circuit = circuitReader.Circuit.ExtractCombinationalEquivalent();

            // reading tree
            var treeReader = new OrandTreeReaderCircuit { Input = circuit };
            treeReader.Read();

            // reading system
            var system = new BooleanSystem();
            var systemReader = new BooleanSystemReaderOrandTree { Input = treeReader.Tree, System = system };
            systemReader.Read();

            var inputsOrder = treeReader.Tree.GetInputsOrder();


            // Act
            var tests = PathDelayFaultAnalyzer.BuildTest(circuit);

            // Assert

            var pathsCount = circuit.CountPaths();
            var robustTest = tests.Where(t => t.FaultType == PdfType.Robust).ToList();
            var nonrobustTest = tests.Where(t => t.FaultType == PdfType.Nonrobust).ToList();
            var falseTest = tests.Where(t => t.FaultType == PdfType.False).ToList();

            if (robustPathTests >= 0)
            {
                Assert.AreEqual(robustPathTests, robustTest.Count);
            }

            if (nonRobustPathTests >= 0)
            {
                Assert.AreEqual(nonRobustPathTests, nonrobustTest.Count);
            }

            if (falsePathTests >= 0)
            {
                Assert.AreEqual(falsePathTests, falseTest.Count);
            }

            // checking whether robust tests propagate transitions
            foreach (var test in tests.Where(test => test.V1 != null && test.V2 != null && test.FaultType == PdfType.Robust))
            {
                if (test.FunctionIndex < 0 || test.FunctionIndex >= system.Functions.Count)
                {
                    Assert.Fail(string.Format("Invalid function index: {0}", test.FunctionIndex));
                }

                // calculating values, only Domain 1 determined
                var value1 = system.Functions[test.FunctionIndex].Calculate(test.V1);
                var value2 = system.Functions[test.FunctionIndex].Calculate(test.V2);

                if (value1 == value2)
                {
                    Assert.Fail(string.Format("Propagation fails for vectors: {0}, {1} (inputs order {2})!", test.V1, test.V2, string.Join(",", inputsOrder)));
                }
            }

            Assert.AreEqual(pathsCount, treeReader.Tree.Leaves.Count);
        }


        [TestMethod]
        public void CalculateObservabilitiesTest()
        {
            // Arrange

            // Iscas89 s208.1
            DoCalculateObservabilities(
                "# s208.1\r\n# 10 inputs\r\n# 1 outputs\r\n# 8 D-type flipflops\r\n# 38 inverters\r\n# 66 gates (21 ANDs + 15 NANDs + 14 ORs + 16 NORs)\r\n\r\nINPUT(P.0)\r\nINPUT(C.8)\r\nINPUT(C.7)\r\nINPUT(C.6)\r\nINPUT(C.5)\r\nINPUT(C.4)\r\nINPUT(C.3)\r\nINPUT(C.2)\r\nINPUT(C.1)\r\nINPUT(C.0)\r\n\r\nOUTPUT(Z)\r\n\r\nX.4 = DFF(I12)\r\nX.3 = DFF(I13)\r\nX.2 = DFF(I14)\r\nX.1 = DFF(I15)\r\nX.8 = DFF(I110)\r\nX.7 = DFF(I111)\r\nX.6 = DFF(I112)\r\nX.5 = DFF(I113)\r\n\r\nI73.1 = NOT(I69)\r\nI73.2 = NOT(X.3)\r\nI7.1 = NOT(I66)\r\nI7.2 = NOT(X.2)\r\nI88.1 = NOT(X.1)\r\nI88.2 = NOT(P.0)\r\nI48 = NOT(P.0)\r\nI49 = NOT(X.4)\r\nI50 = NOT(X.3)\r\nI68 = NOT(I69)\r\nI105.1 = NOT(I163)\r\nI105.2 = NOT(X.6)\r\nI182.1 = NOT(X.5)\r\nI182.2 = NOT(I1.2)\r\nI148 = NOT(X.7)\r\nI149 = NOT(X.6)\r\nI161 = NOT(I162)\r\nI164 = NOT(I163)\r\nI212 = NOT(P.0)\r\nI213 = NOT(X.1)\r\nI214 = NOT(X.2)\r\nI215 = NOT(X.3)\r\nI216 = NOT(X.4)\r\nI225 = NOT(I224)\r\nI240 = NOT(P.0)\r\nI241 = NOT(X.5)\r\nI242 = NOT(X.6)\r\nI243 = NOT(X.7)\r\nI244 = NOT(X.8)\r\nI252 = NOT(I251)\r\nI282 = NOT(P.2)\r\nI283 = NOT(P.3)\r\nI286 = NOT(C.2)\r\nI287 = NOT(C.3)\r\nI306 = NOT(P.6)\r\nI307 = NOT(P.7)\r\nI310 = NOT(C.6)\r\nI311 = NOT(C.7)\r\n\r\nI73.3 = AND(I69, I73.2)\r\nI73.4 = AND(X.3, I73.1)\r\nI7.3 = AND(I66, I7.2)\r\nI7.4 = AND(X.2, I7.1)\r\nI88.3 = AND(X.1, I88.2)\r\nI88.4 = AND(P.0, I88.1)\r\nI105.3 = AND(I163, I105.2)\r\nI105.4 = AND(X.6, I105.1)\r\nI182.3 = AND(X.5, I182.2)\r\nI182.4 = AND(I1.2, I182.1)\r\nI191.1 = AND(I164, X.6)\r\nI1.2 = AND(I2.1, P.0)\r\nP.5 = AND(I209.1, I205.2)\r\nP.6 = AND(I209.1, I206.2)\r\nP.7 = AND(I209.1, I207.2)\r\nP.8 = AND(I209.1, I208.2)\r\nI295.1 = AND(P.1, C.1)\r\nI295.2 = AND(P.0, C.0)\r\nI319.1 = AND(P.5, C.5)\r\nI319.2 = AND(P.4, C.4)\r\nI270.3 = AND(P.8, C.8)\r\n\r\nI70.1 = OR(I68, X.4, I50)\r\nI13 = OR(I73.3, I73.4)\r\nI15 = OR(I88.3, I88.4)\r\nI95.1 = OR(I64, I50, I48)\r\nI167.1 = OR(I165, X.8, I148)\r\nI170.1 = OR(I165, X.7)\r\nI113 = OR(I182.3, I182.4)\r\nI188.1 = OR(I163, I149, I148)\r\nI291.1 = OR(I283, I287)\r\nI291.2 = OR(I282, I286)\r\nI315.1 = OR(I307, I311)\r\nI315.2 = OR(I306, I310)\r\nI270.2 = OR(I269.1, I269.2)\r\nZ = OR(I270.2, I270.3)\r\n\r\nI12 = NAND(I70.1, I62)\r\nI62 = NAND(I95.1, X.4)\r\nI64 = NAND(X.1, X.2)\r\nI66 = NAND(X.1, P.0)\r\nI110 = NAND(I167.1, I159)\r\nI111 = NAND(I170.1, I161)\r\nI159 = NAND(I188.1, X.8)\r\nI163 = NAND(X.5, I1.2)\r\nI165 = NAND(I164, X.6)\r\nI222 = NAND(I225, I214)\r\nI224 = NAND(I213, P.0)\r\nI249 = NAND(I252, I242)\r\nI251 = NAND(I241, P.0)\r\nI269.1 = NAND(I291.1, I291.2, I290)\r\nI269.2 = NAND(I315.1, I315.2, I314)\r\n\r\nI14 = NOR(I7.3, I7.4)\r\nI2.1 = NOR(I64, I49, I50)\r\nI69 = NOR(I64, I48)\r\nI112 = NOR(I105.3, I105.4)\r\nI162 = NOR(I148, I191.1)\r\nP.1 = NOR(I212, I213)\r\nP.2 = NOR(I214, I224)\r\nP.3 = NOR(I215, I222)\r\nP.4 = NOR(X.3, I222, I216)\r\nI209.1 = NOR(X.4, X.2, X.3, X.1)\r\nI205.2 = NOR(I240, I241)\r\nI206.2 = NOR(I242, I251)\r\nI207.2 = NOR(I243, I249)\r\nI208.2 = NOR(X.7, I249, I244)\r\nI290 = NOR(I295.1, I295.2)\r\nI314 = NOR(I319.1, I319.2)\r\n\r\n",
                new Dictionary<string, double>
                    {
                        {"P.0",  0.3},
                        {"C.8",  0.3},
                        {"C.7",  0.3},
                        {"C.6",  0.3},
                        {"C.5",  0.3},
                        {"C.4",  0.3},
                        {"C.3",  0.3},
                        {"C.2",  0.3},
                        {"C.1",  0.3},
                        {"C.0",  0.3},
                        {"X.4",  0.3},
                        {"X.3",  0.3},
                        {"X.2",  0.3},
                        {"X.1",  0.3},
                        {"X.8",  0.3},
                        {"X.7",  0.3},
                        {"X.6",  0.3},
                        {"X.5",  0.3}
                    }
                );

            // Iscas89 s400
            DoCalculateObservabilities(
                "# s400\r\n# 3 inputs\r\n# 6 outputs\r\n# 21 D-type flipflops\r\n# 56 inverters\r\n# 106 gates (11 ANDs + 36 NANDs + 25 ORs + 34 NORs)\r\nINPUT(FM)\r\nINPUT(TEST)\r\nINPUT(CLR)\r\nOUTPUT(GRN2)\r\nOUTPUT(YLW2)\r\nOUTPUT(RED2)\r\nOUTPUT(GRN1)\r\nOUTPUT(YLW1)\r\nOUTPUT(RED1)\r\nTESTL = DFF(TESTLVINLATCHVCDAD)\r\nFML = DFF(FMLVINLATCHVCDAD)\r\nOLATCH_Y2L = DFF(TCOMB_YA2)\r\nOLATCHVUC_6 = DFF(Y1C)\r\nOLATCHVUC_5 = DFF(R2C)\r\nOLATCH_R1L = DFF(TCOMB_RA1)\r\nOLATCH_G2L = DFF(TCOMB_GA2)\r\nOLATCH_G1L = DFF(TCOMB_GA1)\r\nOLATCH_FEL = DFF(TCOMB_FE_BF)\r\nC3_Q3 = DFF(C3_Q3VD)\r\nC3_Q2 = DFF(C3_Q2VD)\r\nC3_Q1 = DFF(C3_Q1VD)\r\nC3_Q0 = DFF(C3_Q0VD)\r\nUC_16 = DFF(UC_16VD)\r\nUC_17 = DFF(UC_17VD)\r\nUC_18 = DFF(UC_18VD)\r\nUC_19 = DFF(UC_19VD)\r\nUC_8 = DFF(UC_8VD)\r\nUC_9 = DFF(UC_9VD)\r\nUC_10 = DFF(UC_10VD)\r\nUC_11 = DFF(UC_11VD)\r\nTESTLVINMUXVIR1 = NOT(TESTB)\r\nTESTLVINMUX = NOT(TESTLVINMUXVND1)\r\nTESTLVINLATCHN = NOT(TESTL)\r\nTESTLVINLATCHVCDN = NOT(CLRB)\r\nFMLVINMUXVIR1 = NOT(FMB)\r\nFMLVINMUX = NOT(FMLVINMUXVND1)\r\nFMLVINLATCHN = NOT(FML)\r\nFMLVINLATCHVCDN = NOT(CLRB)\r\nYLW2 = NOT(OUTBUFVBUFY2VIR1)\r\nOUTBUFVBUFY2VIR1 = NOT(OLATCH_Y2L)\r\nYLW1 = NOT(OUTBUFVBUFY1VIR1)\r\nOUTBUFVBUFY1VIR1 = NOT(OLATCH_Y1L)\r\nRED2 = NOT(OUTBUFVBUFR2VIR1)\r\nOUTBUFVBUFR2VIR1 = NOT(OLATCH_R2L)\r\nRED1 = NOT(OUTBUFVBUFR1VIR1)\r\nOUTBUFVBUFR1VIR1 = NOT(OLATCH_R1L)\r\nGRN2 = NOT(OUTBUFVBUFG2VIR1)\r\nOUTBUFVBUFG2VIR1 = NOT(OLATCH_G2L)\r\nGRN1 = NOT(OUTBUFVBUFG1VIR1)\r\nOUTBUFVBUFG1VIR1 = NOT(OLATCH_G1L)\r\nOLATCH_Y1L = NOT(OLATCHVUC_6)\r\nOLATCH_R2L = NOT(OLATCHVUC_5)\r\nI84 = NOT(TCOMB_FE)\r\nTCOMB_FE_BF = NOT(I84)\r\nFEN = NOT(TCOMB_FE)\r\nCO2 = NOT(C2_CO)\r\nUC_23 = NOT(C3_Q3)\r\nUC_24 = NOT(C3_Q2)\r\nUC_25 = NOT(C3_Q1)\r\nUC_26 = NOT(C3_Q0)\r\nC3VINHN = NOT(CO2)\r\nUC_20 = NOT(UC_16)\r\nC2_QN2 = NOT(UC_17)\r\nUC_21 = NOT(UC_18)\r\nUC_22 = NOT(UC_19)\r\nC2VINHN = NOT(CTST)\r\nC1VCO0 = NOT(UC_15)\r\nUC_12 = NOT(UC_8)\r\nUC_13 = NOT(UC_9)\r\nUC_14 = NOT(UC_10)\r\nUC_11VZ = NOT(UC_11VUC_0)\r\nUC_11VUC_0 = NOT(UC_11)\r\nUC_15 = NOT(UC_11)\r\nTCOMBVNQD = NOT(C3_Q3)\r\nTCOMBVNQC = NOT(C3_Q2)\r\nTCOMBVNQB = NOT(C3_Q1)\r\nTCOMBVNQA = NOT(C3_Q0)\r\nTCOMBVNFM = NOT(FML)\r\nTCOMBVNFEL = NOT(OLATCH_FEL)\r\nTCOMBVNCLR = NOT(CLRB)\r\nTESTB = NOT(TESTBVIR1)\r\nTESTBVIR1 = NOT(TEST)\r\nFMB = NOT(FMBVIR1)\r\nFMBVIR1 = NOT(FM)\r\nCLRB = NOT(CLRBVIR1)\r\nCLRBVIR1 = NOT(CLR)\r\nTESTLVINLATCHVCDAD = AND(TESTLVINLATCHVCDN, TESTLVINMUX)\r\nFMLVINLATCHVCDAD = AND(FMLVINLATCHVCDN, FMLVINMUX)\r\nTCOMB_GA2VAD4NF = AND(OLATCH_FEL, TCOMBVNCLR)\r\nTCOMB_GA2VAD3NF = AND(C3_Q2, TCOMBVNCLR)\r\nTCOMB_GA2VAD2NF = AND(C3_Q0, C3_Q1, TCOMBVNCLR)\r\nTCOMB_GA2VAD1NF = AND(TCOMBVNQA, C3_Q3, TCOMBVNCLR)\r\nTCOMB_GA1VAD1NF = AND(TCOMBVNODE6, OLATCH_FEL)\r\nY1CVAD2NF = AND(FEN, TCOMB_YA1)\r\nY1CVAD1NF = AND(TCOMB_FE, TCOMB_YA1, C2_QN2)\r\nR2CVAD2NF = AND(FEN, TCOMB_RA2)\r\nR2CVAD1NF = AND(TCOMB_FE, TCOMB_RA2, C2_QN2)\r\nTESTLVINMUXVOR2NF = OR(TESTLVINMUXVIR1, TESTLVINLATCHN)\r\nTESTLVINMUXVOR1NF = OR(TESTB, TESTL)\r\nFMLVINMUXVOR2NF = OR(FMLVINMUXVIR1, FMLVINLATCHN)\r\nFMLVINMUXVOR1NF = OR(FMB, FML)\r\nC3_Q3VZVOR1NF = OR(C3VCO2, C3_Q3)\r\nC3_Q2VZVOR1NF = OR(C3VCO1, C3_Q2)\r\nC3_Q1VZVOR1NF = OR(C3VCO0, C3_Q1)\r\nC3_Q0VZVOR1NF = OR(C3VINHN, C3_Q0)\r\nUC_16VZVOR1NF = OR(C2VCO2, UC_16)\r\nUC_17VZVOR1NF = OR(C2VCO1, UC_17)\r\nUC_18VZVOR1NF = OR(C2VCO0, UC_18)\r\nUC_19VZVOR1NF = OR(C2VINHN, UC_19)\r\nUC_8VZVOR1NF = OR(C1VCO2, UC_8)\r\nUC_9VZVOR1NF = OR(C1VCO1, UC_9)\r\nUC_10VZVOR1NF = OR(C1VCO0, UC_10)\r\nTCOMBVNODE16VOR1NF = OR(TCOMBVNODE18, FML, C3_Q3, TCOMBVNQC)\r\nTCOMB_RA2VOR3NF = OR(TCOMBVNQC, CLRB)\r\nTCOMB_RA2VOR2NF = OR(TCOMBVNFEL, CLRB)\r\nTCOMB_RA2VOR1NF = OR(C3_Q0, C3_Q1, TCOMBVNQD, CLRB)\r\nTCOMBVNODE4VOR2NF = OR(C3_Q2, TCOMBVNQD, CLRB)\r\nTCOMBVNODE4VOR1NF = OR(TCOMBVNQC, C3_Q3, TCOMBVNFM, CLRB)\r\nTCOMBVNODE8VOR2NF = OR(TCOMBVNQD, TCOMBVNFM)\r\nTCOMBVNODE8VOR1NF = OR(C3_Q0, C3_Q1, TCOMBVNFM)\r\nTCOMB_RA1VOR2NF = OR(C3_Q2, C3_Q3, OLATCH_FEL)\r\nTCOMB_RA1VOR1NF = OR(TCOMBVNQA, C3_Q1, C3_Q2, OLATCH_FEL)\r\nTESTLVINMUXVND1 = NAND(TESTLVINMUXVOR2NF, TESTLVINMUXVOR1NF)\r\nFMLVINMUXVND1 = NAND(FMLVINMUXVOR2NF, FMLVINMUXVOR1NF)\r\nC3_Q3VZ = NAND(C3_Q3VZVOR1NF, C3_Q3VUC_0)\r\nC3_Q3VUC_0 = NAND(C3VCO2, C3_Q3)\r\nC3_Q2VZ = NAND(C3_Q2VZVOR1NF, C3_Q2VUC_0)\r\nC3_Q2VUC_0 = NAND(C3VCO1, C3_Q2)\r\nC3_Q1VZ = NAND(C3_Q1VZVOR1NF, C3_Q1VUC_0)\r\nC3_Q1VUC_0 = NAND(C3VCO0, C3_Q1)\r\nC3_Q0VZ = NAND(C3_Q0VZVOR1NF, C3_Q0VUC_0)\r\nC3_Q0VUC_0 = NAND(C3VINHN, C3_Q0)\r\nUC_16VZ = NAND(UC_16VZVOR1NF, UC_16VUC_0)\r\nUC_16VUC_0 = NAND(C2VCO2, UC_16)\r\nUC_17VZ = NAND(UC_17VZVOR1NF, UC_17VUC_0)\r\nUC_17VUC_0 = NAND(C2VCO1, UC_17)\r\nUC_18VZ = NAND(UC_18VZVOR1NF, UC_18VUC_0)\r\nUC_18VUC_0 = NAND(C2VCO0, UC_18)\r\nUC_19VZ = NAND(UC_19VZVOR1NF, UC_19VUC_0)\r\nUC_19VUC_0 = NAND(C2VINHN, UC_19)\r\nUC_8VZ = NAND(UC_8VZVOR1NF, UC_8VUC_0)\r\nUC_8VUC_0 = NAND(C1VCO2, UC_8)\r\nUC_9VZ = NAND(UC_9VZVOR1NF, UC_9VUC_0)\r\nUC_9VUC_0 = NAND(C1VCO1, UC_9)\r\nUC_10VZ = NAND(UC_10VZVOR1NF, UC_10VUC_0)\r\nUC_10VUC_0 = NAND(C1VCO0, UC_10)\r\nTCOMBVNODE16 = NAND(TCOMBVNODE19, TCOMBVNODE16VOR1NF)\r\nTCOMBVNODE18 = NAND(TCOMBVNQB, C3_Q0)\r\nTCOMB_RA2 = NAND(TCOMB_RA2VOR3NF, TCOMB_RA2VOR2NF, TCOMB_RA2VOR1NF)\r\nTCOMBVNODE4 = NAND(TCOMBVNODE4VOR2NF, TCOMBVNODE4VOR1NF)\r\nTCOMBVNODE12 = NAND(TCOMBVNCLR, TCOMBVNFEL, TCOMBVNQC, C3_Q1)\r\nTCOMBVNODE3 = NAND(TCOMBVNODE4, TCOMBVNQB, TCOMBVNQA)\r\nTCOMB_YA1 = NAND(TCOMBVNODE16, TCOMBVNODE3)\r\nTCOMBVNODE14 = NAND(TCOMBVNODE15, TCOMBVNQA)\r\nTCOMB_FE = NAND(TCOMBVNODE16, TCOMBVNODE14)\r\nTCOMBVNODE8 = NAND(TCOMBVNCLR, C3_Q2, TCOMBVNODE8VOR2NF, TCOMBVNODE8VOR1NF)\r\nTCOMB_RA1 = NAND(TCOMBVNCLR, TCOMB_RA1VOR2NF, TCOMB_RA1VOR1NF)\r\nTCOMBVNODE6 = NAND(TCOMBVNFM, TCOMBVNQD, TCOMBVNQB, C3_Q0)\r\nCTST = NOR(C1_CO, TESTL)\r\nC3VCO2 = NOR(CO2, UC_24, UC_25, UC_26)\r\nC3VCO1 = NOR(CO2, UC_25, UC_26)\r\nUC_27 = NOR(C3VCIA, CO2, UC_23)\r\nC3VCIA = NOR(C3_Q2, C3_Q1, C3_Q0)\r\nC3VCO0 = NOR(CO2, UC_26)\r\nC3_Q3VD = NOR(CLRB, C3_Q3VZ, UC_27)\r\nC3_Q2VD = NOR(CLRB, C3_Q2VZ, UC_27)\r\nC3_Q1VD = NOR(CLRB, C3_Q1VZ, UC_27)\r\nC3_Q0VD = NOR(CLRB, C3_Q0VZ, UC_27)\r\nC2VCO2 = NOR(CTST, C2_QN2, UC_21, UC_22)\r\nC2VCO1 = NOR(CTST, UC_21, UC_22)\r\nC2_CO = NOR(C2VCIA, CTST, UC_20)\r\nC2VCIA = NOR(UC_17, UC_18, UC_19)\r\nC2VCO0 = NOR(CTST, UC_22)\r\nUC_16VD = NOR(CLRB, UC_16VZ, C2_CO)\r\nUC_17VD = NOR(CLRB, UC_17VZ, C2_CO)\r\nUC_18VD = NOR(CLRB, UC_18VZ, C2_CO)\r\nUC_19VD = NOR(CLRB, UC_19VZ, C2_CO)\r\nC1VCO2 = NOR(UC_13, UC_14, UC_15)\r\nC1VCO1 = NOR(UC_14, UC_15)\r\nC1_CO = NOR(C1VCIA, UC_12)\r\nC1VCIA = NOR(UC_9, UC_10, UC_11)\r\nUC_8VD = NOR(CLRB, UC_8VZ, C1_CO)\r\nUC_9VD = NOR(CLRB, UC_9VZ, C1_CO)\r\nUC_10VD = NOR(CLRB, UC_10VZ, C1_CO)\r\nUC_11VD = NOR(CLRB, UC_11VZ, C1_CO)\r\nTCOMBVNODE19 = NOR(CLRB, TCOMBVNFEL)\r\nTCOMB_GA2 = NOR(TCOMB_GA2VAD4NF, TCOMB_GA2VAD3NF, TCOMB_GA2VAD2NF, TCOMB_GA2VAD1NF)\r\nTCOMBVNODE15 = NOR(CLRB, TCOMBVNFM, TCOMBVNQC, C3_Q1)\r\nTCOMB_YA2 = NOR(TCOMBVNODE12, TCOMBVNQA)\r\nTCOMB_GA1 = NOR(TCOMBVNODE8, TCOMB_GA1VAD1NF)\r\nY1C = NOR(Y1CVAD2NF, Y1CVAD1NF)\r\nR2C = NOR(R2CVAD2NF, R2CVAD1NF)\r\n"
                );

            // Iscas89 s386
            DoCalculateObservabilities(
                "# s386\r\n# 7 inputs\r\n# 7 outputs\r\n# 6 D-type flipflops\r\n# 41 inverters\r\n# 118 gates (83 ANDs + 0 NANDs + 35 ORs + 0 NORs)\r\nINPUT(v6)\r\nINPUT(v5)\r\nINPUT(v4)\r\nINPUT(v3)\r\nINPUT(v2)\r\nINPUT(v1)\r\nINPUT(v0)\r\nOUTPUT(v13_D_12)\r\nOUTPUT(v13_D_11)\r\nOUTPUT(v13_D_10)\r\nOUTPUT(v13_D_9)\r\nOUTPUT(v13_D_8)\r\nOUTPUT(v13_D_7)\r\nOUTPUT(v13_D_6)\r\nv12 = DFF(v13_D_5)\r\nv11 = DFF(v13_D_4)\r\nv10 = DFF(v13_D_3)\r\nv9 = DFF(v13_D_2)\r\nv8 = DFF(v13_D_1)\r\nv7 = DFF(v13_D_0)\r\nv3bar = NOT(v3)\r\nv6bar = NOT(v6)\r\nv5bar = NOT(v5)\r\nB35Bbar = NOT(B35B)\r\nB14Bbar = NOT(B14B)\r\nB34Bbar = NOT(B34B)\r\nv4bar = NOT(v4)\r\nv11bar = NOT(v11)\r\nv8bar = NOT(v8)\r\nv7bar = NOT(v7)\r\nv12bar = NOT(v12)\r\nv0bar = NOT(v0)\r\nv10bar = NOT(v10)\r\nv9bar = NOT(v9)\r\nv1bar = NOT(v1)\r\nI198 = NOT(Lv13_D_12)\r\nv13_D_12 = NOT(I198)\r\nI201 = NOT(Lv13_D_11)\r\nv13_D_11 = NOT(I201)\r\nI204 = NOT(Lv13_D_10)\r\nv13_D_10 = NOT(I204)\r\nI207 = NOT(Lv13_D_9)\r\nv13_D_9 = NOT(I207)\r\nI210 = NOT(Lv13_D_8)\r\nv13_D_8 = NOT(I210)\r\nI213 = NOT(Lv13_D_7)\r\nv13_D_7 = NOT(I213)\r\nI216 = NOT(Lv13_D_6)\r\nv13_D_6 = NOT(I216)\r\nI219 = NOT(Lv13_D_5)\r\nv13_D_5 = NOT(I219)\r\nI222 = NOT(Lv13_D_4)\r\nv13_D_4 = NOT(I222)\r\nI225 = NOT(Lv13_D_3)\r\nv13_D_3 = NOT(I225)\r\nI228 = NOT(Lv13_D_2)\r\nv13_D_2 = NOT(I228)\r\nI231 = NOT(Lv13_D_1)\r\nv13_D_1 = NOT(I231)\r\nI234 = NOT(Lv13_D_0)\r\nv13_D_0 = NOT(I234)\r\nI64 = AND(v0bar, v5, v7bar, v8bar)\r\nI65 = AND(v9, v10, v11bar, v12bar)\r\nLv13_D_12 = AND(I64, I65)\r\nI114 = AND(v9bar, v12bar)\r\nI113 = AND(v7bar, v8bar)\r\nI111 = AND(v7bar, v8bar)\r\nI109 = AND(v3bar, v4bar, v11bar)\r\nI108 = AND(v7, v11)\r\nI106 = AND(v5bar, v7bar, v11, v12)\r\nI105 = AND(v2, v11bar, v12bar)\r\nI103 = AND(v8, v11, v12bar)\r\nI102 = AND(v8bar, v11bar, v12)\r\nI100 = AND(v2, v8bar)\r\nII98 = AND(v0, v5)\r\nI96 = AND(v1, v9bar)\r\nI89 = AND(v5bar, v7bar, v8bar)\r\nI94 = AND(v10, v11bar, I89)\r\nI93 = AND(v9bar, v10bar)\r\nI91 = AND(v0, v11bar, v12bar)\r\nI90 = AND(v9bar, v10bar)\r\nI97 = AND(v0, v6bar, v7bar, v8bar)\r\nI98 = AND(v9bar, v10, v11bar, v12bar)\r\nLv13_D_8 = AND(I97, I98)\r\nI87 = AND(v5bar, v9, v11bar, v12bar)\r\nI104 = AND(v2, v3, v8)\r\nI85 = AND(v11bar, v12bar, I104)\r\nI84 = AND(v8bar, v11, v12)\r\nI79 = AND(v11bar, v12bar)\r\nI77 = AND(v0, v8bar, v10)\r\nI76 = AND(v1bar, v4, v10bar, B34Bbar)\r\nI74 = AND(v7, v8bar, v11)\r\nI73 = AND(v4bar, v11bar, B34Bbar)\r\nI71 = AND(v4bar, v11bar, B34Bbar)\r\nI69 = AND(v7, v11bar)\r\nI124 = AND(B40B, v1, v7bar, v8bar)\r\nLv13_D_10 = AND(v9, v11bar, v12bar, I124)\r\nI66 = AND(v4, v7)\r\nII65 = AND(B35B, B34B)\r\nI63 = AND(v9bar, v10bar, v12bar)\r\nI62 = AND(B23B, v7bar, v8bar)\r\nI60 = AND(v1, B42B)\r\nI59 = AND(B43B, v8, v12bar)\r\nI57 = AND(B32B, v7bar)\r\nI56 = AND(v11, v12bar, B14Bbar)\r\nI54 = AND(v0bar, v9bar, v10bar)\r\nI53 = AND(B27B, v1)\r\nI51 = AND(v9bar, v10bar, v12bar)\r\nI50 = AND(B21B, v7bar, v8bar)\r\nI48 = AND(B14B, v11)\r\nI47 = AND(v4bar, v11bar, B34Bbar)\r\nI148 = AND(B38B, v0, v1bar)\r\nLv13_D_7 = AND(v9bar, v10bar, v12bar, I148)\r\nI44 = AND(v8bar, B29B)\r\nI43 = AND(B30B, v12bar)\r\nI41 = AND(v4, v11bar, B17B)\r\nI40 = AND(v3, v8, B16B)\r\nI39 = AND(v5, v7, v8bar, v11)\r\nI158 = AND(B39B, v7bar, v9bar)\r\nLv13_D_9 = AND(v11bar, v12bar, I158)\r\nI36 = AND(v7bar, v8bar, B25B, B26B)\r\nI35 = AND(B28B, v12bar)\r\nI164 = AND(B15B, v0, v1bar)\r\nLv13_D_0 = AND(v9bar, v10bar, v12bar, I164)\r\nI167 = AND(B33B, v0, v1bar)\r\nLv13_D_5 = AND(v9bar, v10bar, I167)\r\nI31 = AND(B36B, v11bar, v12bar)\r\nI171 = AND(v5, v7bar, v8bar)\r\nI30 = AND(v11, v12, I171)\r\nI175 = AND(v0, v7bar, v8bar)\r\nI28 = AND(v10, v11bar, v12bar, I175)\r\nI27 = AND(B44B, v10bar)\r\nI25 = AND(v0bar, B22B)\r\nI24 = AND(B24B, v1)\r\nI22 = AND(v7bar, B18B)\r\nI21 = AND(B19B, v12bar)\r\nI186 = AND(B31B, v0, v1bar)\r\nLv13_D_4 = AND(v9bar, v10bar, I186)\r\nI18 = AND(v0bar, v10bar, B41B)\r\nI17 = AND(B45B, v9bar)\r\nI192 = AND(B37B, v0, v1bar)\r\nLv13_D_6 = AND(v9bar, v10bar, I192)\r\nI195 = AND(B20B, v0, v1bar)\r\nLv13_D_1 = AND(v9bar, v10bar, I195)\r\nB41B = OR(I113, I114)\r\nB42B = OR(I111, v12bar)\r\nB43B = OR(I108, I109)\r\nB29B = OR(I105, I106)\r\nB18B = OR(I102, I103)\r\nB17B = OR(v7, I100)\r\nB40B = OR(II98, v10bar)\r\nB26B = OR(v0bar, I96)\r\nB27B = OR(I93, I94)\r\nB23B = OR(I90, I91)\r\nB21B = OR(v10bar, I87)\r\nB32B = OR(I84, I85)\r\nB34B = OR(v8bar, v3)\r\nB14B = OR(v7bar, v8bar)\r\nB35B = OR(v2, v7)\r\nB25B = OR(v10bar, I79)\r\nB39B = OR(I76, I77)\r\nB38B = OR(I73, I74)\r\nB30B = OR(I71, v7)\r\nB16B = OR(B35Bbar, I69)\r\nB36B = OR(II65, I66)\r\nB24B = OR(I62, I63)\r\nB44B = OR(I59, I60)\r\nB33B = OR(I56, I57)\r\nB28B = OR(I53, I54)\r\nB22B = OR(I50, I51)\r\nB15B = OR(I47, I48)\r\nB31B = OR(I43, I44)\r\nB19B = OR(I39, I40, I41)\r\nLv13_D_3 = OR(I35, I36)\r\nB37B = OR(I30, I31)\r\nB45B = OR(I27, I28)\r\nLv13_D_2 = OR(I24, I25)\r\nB20B = OR(I21, I22)\r\nLv13_D_11 = OR(I17, I18)\r\n"
                );

            // Iscas89 s344 - long time
            /*
            DoCalculateObservabilities(
                "# s344\r\n# 9 inputs\r\n# 11 outputs\r\n# 15 D-type flipflops\r\n# 59 inverters\r\n# 101 gates (44 ANDs + 18 NANDs + 9 ORs + 30 NORs)\r\nINPUT(START)\r\nINPUT(B0)\r\nINPUT(B1)\r\nINPUT(B2)\r\nINPUT(B3)\r\nINPUT(A0)\r\nINPUT(A1)\r\nINPUT(A2)\r\nINPUT(A3)\r\nOUTPUT(P4)\r\nOUTPUT(P5)\r\nOUTPUT(P6)\r\nOUTPUT(P7)\r\nOUTPUT(P0)\r\nOUTPUT(P1)\r\nOUTPUT(P2)\r\nOUTPUT(P3)\r\nOUTPUT(CNTVCON2)\r\nOUTPUT(CNTVCO2)\r\nOUTPUT(READY)\r\nCT2 = DFF(CNTVG3VD)\r\nCT1 = DFF(CNTVG2VD)\r\nCT0 = DFF(CNTVG1VD)\r\nACVQN3 = DFF(ACVG4VD1)\r\nACVQN2 = DFF(ACVG3VD1)\r\nACVQN1 = DFF(ACVG2VD1)\r\nACVQN0 = DFF(ACVG1VD1)\r\nMRVQN3 = DFF(MRVG4VD)\r\nMRVQN2 = DFF(MRVG3VD)\r\nMRVQN1 = DFF(MRVG2VD)\r\nMRVQN0 = DFF(MRVG1VD)\r\nAX3 = DFF(AM3)\r\nAX2 = DFF(AM2)\r\nAX1 = DFF(AM1)\r\nAX0 = DFF(AM0)\r\nCNTVG3VQN = NOT(CT2)\r\nCNTVG2VQN = NOT(CT1)\r\nCNTVG1VQN = NOT(CT0)\r\nP7 = NOT(ACVQN3)\r\nP6 = NOT(ACVQN2)\r\nP5 = NOT(ACVQN1)\r\nP4 = NOT(ACVQN0)\r\nP3 = NOT(MRVQN3)\r\nP2 = NOT(MRVQN2)\r\nP1 = NOT(MRVQN1)\r\nP0 = NOT(MRVQN0)\r\nCNTVCON0 = NOT(CT0)\r\nCT1N = NOT(CT1)\r\nACVPCN = NOT(START)\r\nCNTVCO0 = NOT(CNTVG1VQN)\r\nAMVS0N = NOT(INIT)\r\nREADY = NOT(READYN)\r\nBMVS0N = NOT(READYN)\r\nAMVG5VS0P = NOT(AMVS0N)\r\nAMVG4VS0P = NOT(AMVS0N)\r\nAMVG3VS0P = NOT(AMVS0N)\r\nAMVG2VS0P = NOT(AMVS0N)\r\nAD0 = NOT(AD0N)\r\nAD1 = NOT(AD1N)\r\nAD2 = NOT(AD2N)\r\nAD3 = NOT(AD3N)\r\nCNTVG3VD1 = NOT(CNTVCON1)\r\nCNTVG1VD1 = NOT(READY)\r\nBMVG5VS0P = NOT(BMVS0N)\r\nBMVG4VS0P = NOT(BMVS0N)\r\nBMVG3VS0P = NOT(BMVS0N)\r\nBMVG2VS0P = NOT(BMVS0N)\r\nSMVS0N = NOT(ADSH)\r\nMRVSHLDN = NOT(ADSH)\r\nADDVC1 = NOT(ADDVG1VCN)\r\nSMVG5VS0P = NOT(SMVS0N)\r\nSMVG4VS0P = NOT(SMVS0N)\r\nSMVG3VS0P = NOT(SMVS0N)\r\nSMVG2VS0P = NOT(SMVS0N)\r\nCNTVG1VZ = NOT(CNTVG1VZ1)\r\nAM3 = NOT(AMVG5VX)\r\nAM2 = NOT(AMVG4VX)\r\nAM1 = NOT(AMVG3VX)\r\nAM0 = NOT(AMVG2VX)\r\nS0 = NOT(ADDVG1VP)\r\nBM3 = NOT(BMVG5VX)\r\nBM2 = NOT(BMVG4VX)\r\nBM1 = NOT(BMVG3VX)\r\nBM0 = NOT(BMVG2VX)\r\nADDVC2 = NOT(ADDVG2VCN)\r\nS1 = NOT(ADDVG2VSN)\r\nADDVC3 = NOT(ADDVG3VCN)\r\nS2 = NOT(ADDVG3VSN)\r\nSM0 = NOT(SMVG2VX)\r\nCO = NOT(ADDVG4VCN)\r\nS3 = NOT(ADDVG4VSN)\r\nSM1 = NOT(SMVG3VX)\r\nSM3 = NOT(SMVG5VX)\r\nSM2 = NOT(SMVG4VX)\r\nAMVG5VG1VAD1NF = AND(AMVS0N, AX3)\r\nAMVG4VG1VAD1NF = AND(AMVS0N, AX2)\r\nAMVG3VG1VAD1NF = AND(AMVS0N, AX1)\r\nAMVG2VG1VAD1NF = AND(AMVS0N, AX0)\r\nBMVG5VG1VAD1NF = AND(BMVS0N, P3)\r\nBMVG4VG1VAD1NF = AND(BMVS0N, P2)\r\nBMVG3VG1VAD1NF = AND(BMVS0N, P1)\r\nBMVG2VG1VAD1NF = AND(BMVS0N, P0)\r\nAMVG5VG1VAD2NF = AND(AMVG5VS0P, A3)\r\nAMVG4VG1VAD2NF = AND(AMVG4VS0P, A2)\r\nAMVG3VG1VAD2NF = AND(AMVG3VS0P, A1)\r\nAMVG2VG1VAD2NF = AND(AMVG2VS0P, A0)\r\nADDVG2VCNVAD1NF = AND(AD1, P5)\r\nADDVG3VCNVAD1NF = AND(AD2, P6)\r\nADDVG4VCNVAD1NF = AND(AD3, P7)\r\nMRVG3VDVAD1NF = AND(ADSH, P3)\r\nMRVG2VDVAD1NF = AND(ADSH, P2)\r\nMRVG1VDVAD1NF = AND(ADSH, P1)\r\nBMVG5VG1VAD2NF = AND(BMVG5VS0P, B3)\r\nBMVG4VG1VAD2NF = AND(BMVG4VS0P, B2)\r\nBMVG3VG1VAD2NF = AND(BMVG3VS0P, B1)\r\nBMVG2VG1VAD2NF = AND(BMVG2VS0P, B0)\r\nSMVG5VG1VAD1NF = AND(SMVS0N, P7)\r\nSMVG4VG1VAD1NF = AND(SMVS0N, P6)\r\nSMVG3VG1VAD1NF = AND(SMVS0N, P5)\r\nSMVG2VG1VAD1NF = AND(SMVS0N, P4)\r\nADDVG2VCNVAD4NF = AND(ADDVC1, AD1, P5)\r\nADDVG2VCNVAD2NF = AND(ADDVC1, ADDVG2VCNVOR1NF)\r\nMRVG4VDVAD1NF = AND(ADSH, S0)\r\nMRVG4VDVAD2NF = AND(MRVSHLDN, BM3)\r\nMRVG3VDVAD2NF = AND(MRVSHLDN, BM2)\r\nMRVG2VDVAD2NF = AND(MRVSHLDN, BM1)\r\nMRVG1VDVAD2NF = AND(MRVSHLDN, BM0)\r\nADDVG2VCNVAD3NF = AND(ADDVG2VCNVOR2NF, ADDVG2VCN)\r\nADDVG3VCNVAD4NF = AND(ADDVC2, AD2, P6)\r\nADDVG3VCNVAD2NF = AND(ADDVC2, ADDVG3VCNVOR1NF)\r\nADDVG3VCNVAD3NF = AND(ADDVG3VCNVOR2NF, ADDVG3VCN)\r\nSMVG2VG1VAD2NF = AND(SMVG2VS0P, S1)\r\nADDVG4VCNVAD4NF = AND(ADDVC3, AD3, P7)\r\nADDVG4VCNVAD2NF = AND(ADDVC3, ADDVG4VCNVOR1NF)\r\nADDVG4VCNVAD3NF = AND(ADDVG4VCNVOR2NF, ADDVG4VCN)\r\nSMVG3VG1VAD2NF = AND(SMVG3VS0P, S2)\r\nSMVG5VG1VAD2NF = AND(SMVG5VS0P, CO)\r\nSMVG4VG1VAD2NF = AND(SMVG4VS0P, S3)\r\nADDVG1VPVOR1NF = OR(AD0, P4)\r\nADDVG2VCNVOR1NF = OR(AD1, P5)\r\nADDVG3VCNVOR1NF = OR(AD2, P6)\r\nADDVG4VCNVOR1NF = OR(AD3, P7)\r\nCNTVG3VG2VOR1NF = OR(CT2, CNTVG3VD1)\r\nCNTVG2VG2VOR1NF = OR(CT1, CNTVG2VD1)\r\nADDVG2VCNVOR2NF = OR(ADDVC1, AD1, P5)\r\nADDVG3VCNVOR2NF = OR(ADDVC2, AD2, P6)\r\nADDVG4VCNVOR2NF = OR(ADDVC3, AD3, P7)\r\nREADYN = NAND(CT0, CT1N, CT2)\r\nAD0N = NAND(P0, AX0)\r\nAD1N = NAND(P0, AX1)\r\nAD2N = NAND(P0, AX2)\r\nAD3N = NAND(P0, AX3)\r\nCNTVCON1 = NAND(CT1, CNTVCO0)\r\nCNTVCON2 = NAND(CT2, CNTVCO1)\r\nADDVG1VCN = NAND(AD0, P4)\r\nCNTVG3VZ1 = NAND(CT2, CNTVG3VD1)\r\nCNTVG2VZ1 = NAND(CT1, CNTVG2VD1)\r\nCNTVG1VZ1 = NAND(CT0, CNTVG1VD1)\r\nADDVG1VP = NAND(ADDVG1VPVOR1NF, ADDVG1VCN)\r\nCNTVG3VZ = NAND(CNTVG3VG2VOR1NF, CNTVG3VZ1)\r\nCNTVG2VZ = NAND(CNTVG2VG2VOR1NF, CNTVG2VZ1)\r\nACVG1VD1 = NAND(ACVPCN, SM0)\r\nACVG2VD1 = NAND(ACVPCN, SM1)\r\nACVG4VD1 = NAND(ACVPCN, SM3)\r\nACVG3VD1 = NAND(ACVPCN, SM2)\r\nINIT = NOR(CT0, CT1, CT2)\r\nCNTVCO1 = NOR(CNTVG2VQN, CNTVCON0)\r\nCNTVCO2 = NOR(CNTVG3VQN, CNTVCON1)\r\nADSH = NOR(READY, INIT)\r\nCNTVG2VD1 = NOR(READY, CNTVCON0)\r\nAMVG5VX = NOR(AMVG5VG1VAD2NF, AMVG5VG1VAD1NF)\r\nAMVG4VX = NOR(AMVG4VG1VAD2NF, AMVG4VG1VAD1NF)\r\nAMVG3VX = NOR(AMVG3VG1VAD2NF, AMVG3VG1VAD1NF)\r\nAMVG2VX = NOR(AMVG2VG1VAD2NF, AMVG2VG1VAD1NF)\r\nBMVG5VX = NOR(BMVG5VG1VAD2NF, BMVG5VG1VAD1NF)\r\nBMVG4VX = NOR(BMVG4VG1VAD2NF, BMVG4VG1VAD1NF)\r\nBMVG3VX = NOR(BMVG3VG1VAD2NF, BMVG3VG1VAD1NF)\r\nBMVG2VX = NOR(BMVG2VG1VAD2NF, BMVG2VG1VAD1NF)\r\nCNTVG3VD = NOR(CNTVG3VZ, START)\r\nCNTVG2VD = NOR(CNTVG2VZ, START)\r\nCNTVG1VD = NOR(CNTVG1VZ, START)\r\nADDVG2VCN = NOR(ADDVG2VCNVAD2NF, ADDVG2VCNVAD1NF)\r\nMRVG4VD = NOR(MRVG4VDVAD2NF, MRVG4VDVAD1NF)\r\nMRVG3VD = NOR(MRVG3VDVAD2NF, MRVG3VDVAD1NF)\r\nMRVG2VD = NOR(MRVG2VDVAD2NF, MRVG2VDVAD1NF)\r\nMRVG1VD = NOR(MRVG1VDVAD2NF, MRVG1VDVAD1NF)\r\nADDVG2VSN = NOR(ADDVG2VCNVAD4NF, ADDVG2VCNVAD3NF)\r\nADDVG3VCN = NOR(ADDVG3VCNVAD2NF, ADDVG3VCNVAD1NF)\r\nADDVG3VSN = NOR(ADDVG3VCNVAD4NF, ADDVG3VCNVAD3NF)\r\nSMVG2VX = NOR(SMVG2VG1VAD2NF, SMVG2VG1VAD1NF)\r\nADDVG4VCN = NOR(ADDVG4VCNVAD2NF, ADDVG4VCNVAD1NF)\r\nADDVG4VSN = NOR(ADDVG4VCNVAD4NF, ADDVG4VCNVAD3NF)\r\nSMVG3VX = NOR(SMVG3VG1VAD2NF, SMVG3VG1VAD1NF)\r\nSMVG5VX = NOR(SMVG5VG1VAD2NF, SMVG5VG1VAD1NF)\r\nSMVG4VX = NOR(SMVG4VG1VAD2NF, SMVG4VG1VAD1NF)\r\n"
                );
             */

            // Iscas89 s298
            DoCalculateObservabilities(
                "# s298\r\n# 3 inputs\r\n# 6 outputs\r\n# 14 D-type flipflops\r\n# 44 inverters\r\n# 75 gates (31 ANDs + 9 NANDs + 16 ORs + 19 NORs)\r\nINPUT(G0)\r\nINPUT(G1)\r\nINPUT(G2)\r\nOUTPUT(G117)\r\nOUTPUT(G132)\r\nOUTPUT(G66)\r\nOUTPUT(G118)\r\nOUTPUT(G133)\r\nOUTPUT(G67)\r\nG10 = DFF(G29)\r\nG11 = DFF(G30)\r\nG12 = DFF(G34)\r\nG13 = DFF(G39)\r\nG14 = DFF(G44)\r\nG15 = DFF(G56)\r\nG16 = DFF(G86)\r\nG17 = DFF(G92)\r\nG18 = DFF(G98)\r\nG19 = DFF(G102)\r\nG20 = DFF(G107)\r\nG21 = DFF(G113)\r\nG22 = DFF(G119)\r\nG23 = DFF(G125)\r\nG28 = NOT(G130)\r\nG38 = NOT(G10)\r\nG40 = NOT(G13)\r\nG45 = NOT(G12)\r\nG46 = NOT(G11)\r\nG50 = NOT(G14)\r\nG51 = NOT(G23)\r\nG54 = NOT(G11)\r\nG55 = NOT(G13)\r\nG59 = NOT(G12)\r\nG60 = NOT(G22)\r\nG64 = NOT(G15)\r\nI155 = NOT(G16)\r\nG66 = NOT(I155)\r\nI158 = NOT(G17)\r\nG67 = NOT(I158)\r\nG76 = NOT(G10)\r\nG82 = NOT(G11)\r\nG87 = NOT(G16)\r\nG91 = NOT(G12)\r\nG93 = NOT(G17)\r\nG96 = NOT(G14)\r\nG99 = NOT(G18)\r\nG103 = NOT(G13)\r\nG108 = NOT(G112)\r\nG114 = NOT(G21)\r\nI210 = NOT(G18)\r\nG117 = NOT(I210)\r\nI213 = NOT(G19)\r\nG118 = NOT(I213)\r\nG120 = NOT(G124)\r\nG121 = NOT(G22)\r\nI221 = NOT(G2)\r\nG124 = NOT(I221)\r\nG126 = NOT(G131)\r\nG127 = NOT(G23)\r\nI229 = NOT(G0)\r\nG130 = NOT(I229)\r\nI232 = NOT(G1)\r\nG131 = NOT(I232)\r\nI235 = NOT(G20)\r\nG132 = NOT(I235)\r\nI238 = NOT(G21)\r\nG133 = NOT(I238)\r\nG26 = AND(G28, G50)\r\nG27 = AND(G51, G28)\r\nG31 = AND(G10, G45, G13)\r\nG32 = AND(G10, G11)\r\nG33 = AND(G38, G46)\r\nG35 = AND(G10, G11, G12)\r\nG36 = AND(G38, G45)\r\nG37 = AND(G46, G45)\r\nG42 = AND(G40, G41)\r\nG48 = AND(G45, G46, G10, G47)\r\nG49 = AND(G50, G51, G52)\r\nG57 = AND(G59, G11, G60, G61)\r\nG58 = AND(G64, G65)\r\nG62 = AND(G59, G11, G60, G61)\r\nG63 = AND(G64, G65)\r\nG74 = AND(G12, G14, G19)\r\nG75 = AND(G82, G91, G14)\r\nG88 = AND(G14, G87)\r\nG89 = AND(G103, G96)\r\nG90 = AND(G91, G103)\r\nG94 = AND(G93, G13)\r\nG95 = AND(G96, G13)\r\nG100 = AND(G99, G14, G12)\r\nG105 = AND(G103, G108, G104)\r\nG110 = AND(G108, G109)\r\nG111 = AND(G10, G112)\r\nG115 = AND(G114, G14)\r\nG122 = AND(G120, G121)\r\nG123 = AND(G124, G22)\r\nG128 = AND(G126, G127)\r\nG129 = AND(G131, G23)\r\nG24 = OR(G38, G46, G45, G40)\r\nG25 = OR(G38, G11, G12)\r\nG68 = OR(G11, G12, G13, G96)\r\nG69 = OR(G103, G18)\r\nG70 = OR(G103, G14)\r\nG71 = OR(G82, G12, G13)\r\nG72 = OR(G91, G20)\r\nG73 = OR(G103, G20)\r\nG77 = OR(G112, G103, G96, G19)\r\nG78 = OR(G108, G76)\r\nG79 = OR(G103, G14)\r\nG80 = OR(G11, G14)\r\nG81 = OR(G12, G13)\r\nG83 = OR(G11, G12, G13, G96)\r\nG84 = OR(G82, G91, G14)\r\nG85 = OR(G91, G96, G17)\r\nG41 = NAND(G12, G11, G10)\r\nG43 = NAND(G24, G25, G28)\r\nG52 = NAND(G13, G45, G46, G10)\r\nG65 = NAND(G59, G54, G22, G61)\r\nG97 = NAND(G83, G84, G85, G108)\r\nG101 = NAND(G68, G69, G70, G108)\r\nG106 = NAND(G77, G78)\r\nG109 = NAND(G71, G72, G73, G14)\r\nG116 = NAND(G79, G80, G81, G108)\r\nG29 = NOR(G10, G130)\r\nG30 = NOR(G31, G32, G33, G130)\r\nG34 = NOR(G35, G36, G37, G130)\r\nG39 = NOR(G42, G43)\r\nG44 = NOR(G48, G49, G53)\r\nG47 = NOR(G50, G40)\r\nG53 = NOR(G26, G27)\r\nG56 = NOR(G57, G58, G130)\r\nG61 = NOR(G14, G55)\r\nG86 = NOR(G88, G89, G90, G112)\r\nG92 = NOR(G94, G95, G97)\r\nG98 = NOR(G100, G101)\r\nG102 = NOR(G105, G106)\r\nG104 = NOR(G74, G75)\r\nG107 = NOR(G110, G111)\r\nG112 = NOR(G62, G63)\r\nG113 = NOR(G115, G116)\r\nG119 = NOR(G122, G123, G130)\r\nG125 = NOR(G128, G129, G130)\r\n"
                );

            // from article for g14(c)
            DoCalculateObservabilities(
                "INPUT(g0)\r\nINPUT(g1)\r\nINPUT(g2)\r\nINPUT(g4)\r\nOUTPUT(g10)\r\ng5 = NOT(g2)\r\ng6 = NOT(g14)\r\ng7 = NAND(g4, g1)\r\ng8 = AND(g6, g4)\r\ng9 = OR(g5, g8)\r\ng10 = AND(g0, g1, g9)\r\ng11 = NOT(g9)\r\ng12 = AND(g11, g7)\r\ng13 = OR(g10, g12)\r\ng14 = DFF(g13)",
                new Dictionary<string, double>
                    {
                        {"g0",  0.5},
                        {"g1",  0.5},
                        {"g2",  0.5},
                        {"g4",  0.5},
                        {"g14",  0.5}
                    });
            
            
            // Iscas89 s27
            DoCalculateObservabilities(
                "# s27\r\n# 4 inputs\r\n# 1 outputs\r\n# 3 D-type flipflops\r\n# 2 inverters\r\n# 8 gates (1 ANDs + 1 NANDs + 2 ORs + 4 NORs)\r\nINPUT(G0)\r\nINPUT(G1)\r\nINPUT(G2)\r\nINPUT(G3)\r\nOUTPUT(G17)\r\nG5 = DFF(G10)\r\nG6 = DFF(G11)\r\nG7 = DFF(G13)\r\nG14 = NOT(G0)\r\nG17 = NOT(G11)\r\nG8 = AND(G14, G6)\r\nG15 = OR(G12, G8)\r\nG16 = OR(G3, G8)\r\nG9 = NAND(G16, G15)\r\nG10 = NOR(G14, G11)\r\nG11 = NOR(G5, G9)\r\nG12 = NOR(G1, G7)\r\nG13 = NOR(G2, G12)\r\n"
                );
        }

        private static void DoCalculateObservabilities(string circuitStr, Dictionary<string, double> inputProabilities = null)
        {
            // Arange

            // reading circuit
            var circuitReader = new CircuitReaderPlain { Input = circuitStr };
            circuitReader.Read();

            // Act
            var result = PathDelayFaultAnalyzer.CalculateRobustObservabilities(circuitReader.Circuit, inputProabilities);
            Assert.IsNotNull(result);
        }
    }
}
